javascript - 如何计算字符串中单词的频率
问题描述
我需要编写一个函数来计算函数给定参数中字符串中每个单词的频率。我想知道,最好的方法是什么?
例如,如果参数中的字符串是“Mark cow mark cow the”,那么每个单词的计数将是:
标记:1
标记:1
牛:2
该:1
我的功能:
function calcFrequencies(s){
var a = [], b = [], prev;
var words = s.split(" ");
for ( var i = 0; i < words.length; i++ ) {
}
}
只是为了澄清一下,我对你提出的任何解决方案都很好,我只是认为它可能涉及拆分和循环数组,我似乎无法弄清楚。
解决方案
您可以创建一个地图来跟踪每个单词的计数。
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);
}
推荐阅读
- python - make apply 返回两个系列
- android - > 任务:app:checkDebugManifest FAILED //@React Native
- javascript - 从对象数组中的数据计算平均值并存储在对象的特定键中
- python - 如何在 docker 中连接 MariaDB 和 Python
- c# - Environment.GetCommandLineArgs() 可能会得到一个不受信任的字符串
- javascript - 如何将firebase身份验证与电子一起使用
- for-loop - 有没有办法组合嵌套循环,其中内部循环迭代变量迭代?
- java - Spring MVC 从本地 C: 驱动器读取文件
- dynamics-crm - Dynamic 365 - 检索 API 元数据属性列表 - DateTimeBehavior
- mysql - 在 MySQL 中以 LIFO 方式查找经过的时间