Assignment 9
by Ebony McCoy
HTML
<form id="form">Enter Phrase.
<br/>
<textarea id="phrase" rows="4" 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>
<br/>
<div id="output"></div>
JavaScript
var hashTable = new HashTable();
function parsePhrase() {
var phrase = document.getElementById("phrase").value;
var phraseAsStringArray = phrase.split(" ");
var len = phraseAsStringArray.length;
for (var i = 0; i < len; i++) {
hashTable.addWord(phraseAsStringArray[i], i + 1);
}
document.getElementById("output").innerHTML = hashTable.print();
}
function HashTable(key) {
this.bins = {};
this.length = 0;
for (var n in key) {
if (key.hasOwnProperty(n)) {
this.bins[n] = key[n];
this.length++;
}
}
this.addWord = function(word, index) {
if (this.hasWord(word)) {
this.addExistingWord(word, index);
} else {
this.addNewWord(word, index);
}
return word;
}
this.hasWord = function(word) {
return this.bins.hasOwnProperty(word);
}
this.addNewWord = function(word, index) {
this.bins[word] = index;
this.length++;
return word;
}
this.addExistingWord = function(word, index) {
var current = this.bins[word];
this.bins[word] = current + " " + index;
return word;
}
this.print = function() {
var str = "";
for (var w in this.bins) {
if (this.hasWord(w)) {
str = str + w + ": " + this.bins[w] + "<br/>";
}
}
return str;
}
}