javascript - 计算指定列表中关键字出现的频率
问题描述
我正在尝试计算特定关键字在字符串中出现的次数。假设我有一个字符串,我想计算几个关键字在字符串中出现的次数。这些关键字存储在一个列表中。在程序计算一个单词出现的次数后,它将它存储在一个数组中。
我写了以下程序
var para = "I code code code Javascript"
var keywords = ['code',"I"];
var arr = [];
for(let i = 0; i < keywords.length; i++){
arr[i] = (para.match(/keywords[i]/g) || []).length;
}
关键字[i] 似乎不起作用
解决方案
您可以使用Array.prototype.reduce
创建一种计数图:
const getKeywordCount = (s, keywords) => {
return s.split(' ').reduce((accum, word) => {
if (keywords.includes(word)) {
accum[word] = accum[word] ? accum[word] + 1 : 1;
}
return accum;
}, {});
};
console.log(getKeywordCount("I code code code Javascript", ['code', "I"]))
推荐阅读
- r - 为什么我的 R 情节没有按照使用我的代码的方式出现?
- angular - Angular 11 Universal 不在页面源中显示动态数据
- javascript - 找不到模块'/home/container/node_modules/sqlite3/lib/binding/napi-v3-linux-x64/node_sqlite3.node'
- firebase - Firebase 多次重定向
- javascript - Vercel 上的 Next.js 部署失败
- angular - 以角度发出女巫异步(列出来自 Web Api 的元素)
- node.js - 从 Google Cloud Scheduler 调用 Google App Engine Admin API 时出现 403 权限被拒绝
- python - 在向 android 请求外部存储权限后,Jnuis 将无法工作。为什么?
- javascript - 如何向 React 应用程序添加进度条?
- laravel - 通过 cookie 测试显示隐藏调试内容,这是最佳做法吗?