如何统计数组元素拆分后的词频,而非原数组整项的重复次数
数组单词累计出现次数统计方案
原有代码是将数组的每一项作为整体计数,要实现按单词统计次数,需要先将每个数组项按空格拆分为单个单词,再逐词计数。
示例数组
let array = ['a','data country name data', 'day data day', 'service name data','a'];
实现代码
如果你需要同一个数组项内重复的单词仅计数1次,拆分后先做去重处理即可,最终输出和你预期完全一致:
console.log( array.reduce((acc, cur) => { // 拆分单词后先去重 const uniqueWords = [...new Set(cur.split(' '))] uniqueWords.forEach(word => acc[word] = (acc[word] || 0) + 1) return acc }, {}) )
如果不需要对单个数组项内的单词去重,去掉去重逻辑即可统计单词的实际出现总次数。
输出结果
a: 2 data: 3 country: 1 name: 2 day: 1 service: 1
内容的提问来源于stack exchange,提问作者Andrea
相关产品推荐
相关产品推荐

