javascript 统计数组中重复元素数量
时间: 2025-01-08 19:37:54 浏览: 39
### 使用 JavaScript 统计数组中重复元素数量的方法
为了统计数组中的重复项,可以利用对象或 `Map` 来记录每个元素出现的次数。下面提供了一种基于现代 JavaScript 的简洁实现方式:
```javascript
const countDuplicates = (arr) => {
const counts = {};
arr.forEach(item => {
if (counts[item]) {
counts[item]++;
} else {
counts[item] = 1;
}
});
return Object.entries(counts).filter(([key, value]) => value > 1);
};
```
这段代码定义了一个名为 `countDuplicates` 的函数,接收一个参数 `arr` 表示待处理的数组。内部创建了一个空的对象 `counts` 用来存储各个元素及其对应的频率。遍历输入数组时,对于每一个遇到的新元素,在 `counts` 中初始化其计数为 1;如果已经存在,则增加相应的计数值。
最后返回的是一个新的二维数组列表,其中只保留那些频次大于一的键值对[^1]。
此外,也可以采用更简洁的方式使用箭头函数和一些内置方法来完成相同的功能:
```javascript
const countDuplicatesArrow = (arr) =>
[...new Set(arr)].reduce((acc, curr) => ({
...acc,
[curr]: (acc[curr] || 0) + 1
}), {});
console.log(countDuplicatesArrow([1, 2, 3, 2, 4, 5, 5])); // { '1': 1, '2': 2, '3': 1, '4': 1, '5': 2 }
```
这里展示了另一种风格——箭头函数的应用[^2]。此版本先通过 `Set` 去重再用 `reduce()` 方法累积结果,最终得到包含所有元素及其出现次数的对象。
阅读全文
相关推荐

















