使用Object统计数组元素出现频率(需遍历Object实现)
使用Object统计数组元素出现频率(遍历Object实现输出)
要实现这个需求,分两步走:先统计元素频率,再遍历Object输出指定格式的结果,具体代码和解释如下:
代码实现
// 示例输入数组 const inputArr = ["a1", "b1","a2","a1", "b2", "b1"]; // 初始化空对象存储频率 const frequencyObj = {}; // 第一步:遍历数组统计元素出现频率 inputArr.forEach(item => { // 元素已存在则计数+1,不存在则初始化为1 frequencyObj[item] = (frequencyObj[item] || 0) + 1; }); // 第二步:遍历Object的键,生成指定格式的输出字符串 const outputStr = Object.keys(frequencyObj).map(key => { return `${key} - ${frequencyObj[key]}`; }).join(', '); // 打印结果 console.log(outputStr);
代码说明
- 统计阶段:通过
forEach遍历输入数组,将数组元素作为frequencyObj的键,利用逻辑或||处理首次出现的元素,确保计数从1开始,重复元素则累加计数。 - 输出阶段:用
Object.keys()获取frequencyObj的所有键(即数组中的唯一元素),遍历这些键拼接成元素 - 次数的格式,最后用join(', ')把所有项连接成符合要求的字符串。
运行结果
执行代码后控制台会输出:
a1 - 2, b1 - 2, a2 - 1, b2 - 1
内容的提问来源于stack exchange,提问作者Bhargav Krishna
相关产品推荐
相关产品推荐

