我需要编写一个函数,计算函数给定参数中字符串中每个单词的频率。我想知道,最好的方法是什么?
例如,如果参数中的字符串是“Markowmarkcowthe” 每个单词的计数为:
标记:1
标记:1
牛:2头
: 1
我的功能:
function calcFrequencies(s){
var a = [], b = [], prev;
var words = s.split(" ");
for ( var i = 0; i < words.length; i++ ) {
}
}
只是为了澄清,我同意你提出的任何解决方案,我只是认为它可能涉及数组的拆分和循环,我只是似乎无法弄清楚。
最佳答案
您可以创建 Map跟踪每个单词的计数。
function calcFrequencies(s) {
let count = new Map();
var words = s.split(" ");
words.forEach(word => {
let c = count.get(word) || 0;
c++;
count.set(word, c);
});
return count;
}
let result = calcFrequencies("Mark cow mark cow the");
for (let [key, value] of result.entries()) {
console.log(key + ": " + value);
}
关于javascript - 如何计算字符串中单词的频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58632405/