JSFiddle - React, Tailwind, and code Playground
HTML
<div id="out"></div>
<input type="text" id="counts">
CSS
#counts {
padding: 4px 6px;
width: 400px;
border: 1px #DDD solid;
}
JavaScript
var out = document.getElementById('out');
for (var i = 0, letter; i < 10; i++) {
(function(i) {
setTimeout(function() {
letter = String.fromCharCode(97 + Math.floor(Math.random() * 26));
out.appendChild(document.createTextNode(letter));
if (i == 9) {
calculate(out.innerHTML);
}
}, 100 * i); // 2000
})(i);
}
function calculate(str) {
for (var l = str.length, counts = {}; l--;) {
counts[str[l]] = (counts[str[l]] || 0) + 1;
}
var res = [], el;
for (el in counts) {
res.push(el + '=' + counts[el]);
}
document.getElementById('counts').value = res.join(', ');
}