【发布时间】:2015-08-21 22:28:11
【问题描述】:
我正在尝试计算一个单词中重复次数最多的字母
function GreatestCount(str)
{
var count = {}
for (var i = 0 ; i<str.length;i++)
{
var char = str[i];
count[char] = (count[char] || 0) + 1;
}
//get the largest number for the letter counts
var max = 0;
for (var c in count) {
if (count[c] > max) max = count[c];
}
return max
}
谁能解释一下原因
count[char] = (count[char] || 0) + 1;// this works
count[char] += 1 // this does not work
【问题讨论】:
-
@Oriol 已经回答了您的问题,但我想为您提供更多帮助。您可以在插入对象时存储最大值,这将减少最后一个“for”,节省 26 个循环。此外,您需要使用 .ToLowerCase 来防止在不同的计数器中计数相同的字母。例如,除非您这样做,否则“a”和“A”的行为会有所不同。
标签: javascript hashtable