Assignment 9

by wooozy

HTML

<h1>
 Assignment 9
</h1>
<form id="form">Enter Phrase Here:
    <br>
    <textarea id='phrase' rows='10' cols='50'>i want what i want and know what i want </textarea>
    <br>
    <input type="button" value="Parse Phrase" id="parse" onClick='parsePhrase();'>
</form>
<div id="output"></div>
<p id='outputs'></p>

JavaScript

function parsePhrase() {
    var phrase = document.getElementById('phrase').value;
    var phraseAsStringArray = phrase.split(' ');
    var lenAll = phraseAsStringArray.length;
    var h = new HashTable(phraseAsStringArray);
    debugger;
    var s = printHash(h);
   
   
	document.getElementById('outputs').innerHTML = s;
}


function addUnique(value, index, self) { 
    return self.indexOf(value) === index;
}

function HashTable(ar){
    
    var uniqueWordsArray = ar.filter(addUnique);
    var allIndices = [];
    var len = uniqueWordsArray.length;
    for (var i = 0; i < len; i++) { 
    	var idx = obtainHash(ar,uniqueWordsArray[i]);
    	allIndices.push(idx);
    }
    this.allWords = uniqueWordsArray;
    this.allIndices = allIndices;
}
function obtainHash(ar,element){
  var indices = [];
  var idx = ar.indexOf(element);
  while (idx != -1) {
    indices.push(idx+1);
    idx = ar.indexOf(element, idx + 1);
  }
  return indices;
}
function printHash(ht){
  var words = ht.allWords;
  var ind = ht.allIndices;
  var str = "";
  var l = words.length;
  for (var i = 0; i < l; i++) { 
        var j = ind[i];
        var s = j.join(" ");
        str = str + (words[i] + ": " + s + "<br>");
      }
	return str;
}