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 />";
	}
}());