function rakna() {
var massa = $( "#textmassa" ).text();
var frekvens = {};
for (var i=0; i < massa.length;i++) { // iterera över indatatexten
var tecken = massa.charAt(i); // hämta tecknet vid aktuell position i strängen
if (frekvens[tecken]) { // om det finns ett värde knutet till tecknet i frekvenslistan
frekvens[tecken]++; // öka det värdet
} else { // annars
frekvens[tecken] = 1; // lägg till ett värde och börja räkna på 1
}
} // lösningen är begränsad till de _tecken som finns i strängen_. ett alternativ är att rigga en lista med tecken att kolla efter, sedan iterera med bas i den och iterera en kontroll av varje tecken i strängen, och bygga frekvenslistan från det.
var inhl = '';
for (var p in frekvens) {
inhl += p + ": " + frekvens[p] + " stycken.
";
}
document.getElementById("listbox").innerHTML = inhl;
}
Kommentar: Att räkna bokstäver kan vara knepigt, beroende på förutsättningarna. Uppgiften var att räkna dem, min lösning räknar alla tecken. En mer uppgiftslojal lösning hade via regex eller en lista med godkända tecken gjort jämförelser och räknat likheter mot den, eftersom det är känt vilka bokstäver som ingår i texten. Min lösning räknar de tecken som de facto finns i textmassan, inklusive blanksteg, med mera.