首页 > 解决方案 > 计算指定列表中关键字出现的频率

问题描述

我正在尝试计算特定关键字在字符串中出现的次数。假设我有一个字符串,我想计算几个关键字在字符串中出现的次数。这些关键字存储在一个列表中。在程序计算一个单词出现的次数后,它将它存储在一个数组中。

我写了以下程序

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] 似乎不起作用

标签: javascript

解决方案


您可以使用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"]))


推荐阅读