有没有人知道一种简单的方法来计算Javascript字符串中单词的出现次数,而没有预定义的单词列表可用?理想情况下,我希望它输出到一个关联数组(Word,Count)。
例如,沿“你好你好,你好怎么样”的输入会输出以下内容: - “你好”:2 “怎么样”:1 “是”:1 “你”:1
非常感谢任何帮助。
谢谢,
答案 0 :(得分:3)
对于一个简单的字符串,这应该足够了:
str = "hello hello hello this is a list of different words that it is";
var split = str.split(" "),
obj = {};
for (var x=0; x<split.length; x++){
if(obj[split[x]]===undefined){
obj[split[x]]=1;
}else{
obj[split[x]]++;
}
}
如果你想处理句子,你需要处理标点符号等(所以,用空格替换所有!?。)
答案 1 :(得分:3)
var counts = myString.replace/[^\w\s]/g, "").split(/\s+/).reduce(function(map, word){
map[word] = (map[word]||0)+1;
return map;
}, Object.create(null));