A9 Hash Compression

Final working version

by scotp71

HTML

<H1>
Hash Table
</H1>

<form id="form">Enter Phrase.
    <br>
    <textarea id='phrase' rows='10' cols='50'>I want what I want and I know what I want</textarea>
    <br>
    <input type="button" value="Parse Phrase" id="parse" onClick='parsePhrase();'>
</form>
<div id="output"></div>

JavaScript

var aList = new LinkedList();
function parsePhrase() {
debugger;
    var phrase = document.getElementById('phrase').value;
    var phraseAsStringArray = phrase.split(' ');
    var len = phraseAsStringArray.length;
    
    for (var i = 0; i < len; i++) {
        Words(phraseAsStringArray[i], i); 
    }
    document.getElementById("output").innerHTML = finalPrint();
}

var bins = [];
var same = false;
var wordIndex = null;
function Words(word, index){
	if(bins.length==0){
  	addNewWord(word, index);
    return;
  }
  	if (sameWord(word)!= true){
      addNewWord(word, index);
    }
    else{
    
      addExistingWord(word,index);
    }
    return;
    
  
}  

function addNewWord(word, index){
	var newWord = new LinkedList();
  newWord.add(word, index);
  bins.push(newWord);
}      

function addExistingWord(word, index){
	for (var z=0; z<bins.length; z++){
  	var head = bins[z].head.content;
		var w = word;
		var lh = head.toLowerCase();
		var lw = word.toLowerCase();
		if(lw == lh){
    	bins[z].add(word, index);
  	}
	}
}

function sameWord(word){
for (var j=0; j<bins.length; j++){
	var head = bins[j].head.content;
	var w = word;
	var lh = head.toLowerCase();
	var lw = word.toLowerCase();
		if(lw == lh){
  		return true;
  	}
  	}
  	return false; 
}    

function finalPrint(){
	var s ="";
  for (var k=0; k<bins.length; k++){
  	s+= bins[k].head.content + ": " + indexPrint(k) + "</br>";
  }
	return s;
}

 function indexPrint(k){
	var y = "";

  	var node = new Node(); node = bins[k].head;
  	for (var a=0; a<bins[k].length; a++){
    	y += (node.num+1) + ", ";
      node = node.next;
    }
  return y;
}      

function LinkedList(){
	this.head = null;
  this.tail = null;
  this.length = 0;

}

function Node(){
	this.next = null;
  this.prev = null;
  this.content = null;
  this.num = null;

}

LinkedList.prototype.add = function(_content, index) {
	var node = new Node();  node.content = _content; node.num = index;
  
  if (this.head == null) {
  	this.head =...