-1

有没有人知道一种简单的方法来计算 Javascript 字符串中某个单词的出现次数,而无需预定义的可用单词列表?理想情况下,我希望它输出到关联数组(字,计数)中。

例如,“Hello how are you Hello”这样的输入会输出如下内容:- “Hello”:2 “how”:1 “are”:1 “you”:1

任何帮助是极大的赞赏。

谢谢,

4

2 回答 2

4

对于一个简单的字符串,这应该足够了:

var str = "hello hello hello this is a list of different words that it is",
    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]]++;
  }
}

console.log(obj)

但是,如果您想处理句子,则需要对标点符号等进行一些处理(因此,将所有 !?. 替换为空格)

于 2013-02-16T19:16:47.957 回答
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));
于 2013-02-16T19:21:32.620 回答