JSFiddle - React, Tailwind, and code Playground
by dhizzybusy
HTML
<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 hashTable = new HashTable(); // Global
function parsePhrase() {
var phrase = document.getElementById('phrase').value;
var phraseAsStringArray = phrase.split(' ');
var len = phraseAsStringArray.length;
hashTable.bins = [];
for (var i = 0; i < len; i++) {
//parsing each word
hashTable.addWord(phraseAsStringArray[i], i + 1);
}
//printing result to console
for (var i = 0; i < hashTable.bins.length; i++) {
console.log(hashTable.bins[i]);
}
}
function HashTable() {
// Decide how to store the bins - add here
// This will contain all the Words
this.bins = []; // using array as example (list is better)
this.addWord = function(word, index) {
var add = true;
//this is boolean value to check for add new one or not
for (var i = 0; i < hashTable.bins.length; i++) {
for (var j = 0; j < hashTable.bins[i].length; j++) {
if (hashTable.bins[i][j] === word) {
//checking for exisiting word
hashTable.bins[i].push(index);
add = false;
break;
}
}
}
if (add) {
//adding new bin
var arr = [];
arr.push(word);
arr.push(index);
hashTable.bins.push(arr);
}
return word;
};
}