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;
}