Module 8 A1
Hashing Part 1
by Jenni Meiklejohn
HTML
<h1><center> Assignment 9 </center></h1>
<h2><center> Hash Compression </center></h2>
<form id="form">Enter Phrase.
<br>
<textarea id='phrase' rows='10' cols='50'>I am a man, I consider nothing that is human alien to me.</textarea>
<br>
<input type="button" value="Parse Phrase" id="parse" onClick='parsePhrase();'>
</form>
<div id="output"></div>
JavaScript
function parsePhrase() {
var hashTable = new HashTable();
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);
};
var d = " ";
var aLength = hashTable.txt.length;
for (var i = 0; i < aLength; i++) {
d += "<br>" + hashTable.txt[i] + ": " + hashTable.index[i] + "<br>";
};
document.getElementById("output").innerHTML = d;
}
function HashTable() {
this.txt = [];
this.index = [];
this.addWord = function(word, wLocation) {
var atIndex = this.hasWord(word)
if (atIndex == true) {
this.addNewWord(word, wLocation)
} else {
this.addExistingWord(word, wLocation, atIndex)
}
};
this.hasWord = function(word) {
var len = this.txt.length;
var wordFound = true;
for (var i = 0; i < len; i++) {
if (this.txt[i] == word) {
wordFound = i;
}
}
return wordFound;
};
this.addNewWord = function(word, wLocation) {
var nIndex = this.txt.length;
this.txt[nIndex] = word;
this.index[nIndex] = wLocation;
return word;
};
this.addExistingWord = function(word, wLocation, atIndex) {
this.index[atIndex] = this.index[atIndex] + " " + wLocation;
return word;
};
}