javascript - 如何计算字符串中单词的频率

标签 javascript string frequency

我需要编写一个函数,计算函数给定参数中字符串中每个单词的频率。我想知道,最好的方法是什么?

例如,如果参数中的字符串是“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/

相关文章:

c# - 从最后删除字符串

python - 从另一列的子字符串创建列

java - 当存在转义引号时,在引号外的逗号上拆分

javascript - 通过 Javascript SDK 登录 Facebook 可在移动设备和本地主机上使用,但不适用于台式计算机

javascript - 从输入中添加和删除类

javascript - Javascript如何在浏览器中显示

python - pythonivot_table 的替代方案,用于两个变量的频率表

javascript - "merging"图片和文字为一体

function - 确定 XQuery 中出现的频率

java - 互信息: Calculation example (Java) in contingency table style