JSFiddle - React, Tailwind, and code Playground
by jdgiotta
HTML
<div id="result"></div>
JavaScript
var prompts = [];
function collateWords () {
var sWords = prompts.join(" ").toLowerCase().trim().replace(/[,;.]/g,'').split(/[\s\/]+/g).sort();
var iWordsCount = sWords.length; // count w/ duplicates
var counts = {}; // object for math
for (var i=0; i<iWordsCount; i++) {
var sWord = sWords[i];
counts[sWord] = counts[sWord] || 0;
counts[sWord]++;
}
var arr = []; // an array of objects to return
for (sWord in counts) {
arr.push({
text: sWord,
frequency: counts[sWord]
});
}
// sort array by descending frequency | http://stackoverflow.com/a/8837505
return arr.sort(function(a,b){
return (a.frequency > b.frequency) ? -1 : ((a.frequency < b.frequency) ? 1 : 0);
});
};
(function(){
for (var i=0; i<5; i++) {
prompts.push(prompt("What is your favorite color?"))
}
var collected = collateWords();
var iWordsCount = collected.length; // count w/o duplicates
for (var i=0; i<iWordsCount; i++) {
var word = collected[i];
document.getElementById("result").innerHTML += word.frequency + ", " + word.text + "<br />";
}
}());