使用JavaScript统计字符串数组中字符出现次数并生成键值对数组
统计字符串数组中各字符串的字符出现次数
需求说明
给定一个由多个字符串组成的数组,需要为每个字符串生成一个字符统计对象(键为字符,值为该字符在对应字符串中的出现次数),最终返回包含这些对象的数组。
示例
输入
let words = ["aabbbc", "dddeeef", "gghhhii"]
输出
[{a:2, b:3, c:1}, {d:3, e:3, f:1}, {g:2, h:3, i:2}]
解决方案代码
const countCharsPerWord = (words) => { return words.map(word => { return word.split('').reduce((counter, char) => { counter[char] = (counter[char] || 0) + 1; return counter; }, {}); }); }; // 测试用例 const words = ["aabbbc", "dddeeef", "gghhhii"]; console.log(countCharsPerWord(words));
代码解释
- 用
map遍历输入数组,对每个字符串单独处理。 - 每个字符串先通过
split('')拆分为单个字符的数组,再用reduce构建统计对象:- 初始化空对象作为统计容器。
- 遍历字符时,若字符已在容器中,对应次数加1;若不存在,则将次数设为1。
map最终返回的数组就是所有统计对象的集合,完全匹配需求。
内容的提问来源于stack exchange,提问作者user_1234
相关产品推荐
相关产品推荐

