JavaScript中如何仅统计数组内重复出现元素的数量
统计数组中重复元素数量的实现方法
核心思路
- 第一步:遍历目标数组,统计每个元素的出现频次
- 第二步:筛选出出现频次大于1的元素,统计这类元素的总个数即可得到最终结果
代码实现
JavaScript 版本
// 常规写法 function countDuplicateElements(arr) { const countMap = {}; for (const item of arr) { countMap[item] = (countMap[item] || 0) + 1; } let duplicateCount = 0; for (const count of Object.values(countMap)) { if (count > 1) duplicateCount++; } return duplicateCount; } // 简洁写法 const countDuplicate = arr => Object.values( arr.reduce((acc, cur) => (acc[cur] = (acc[cur] || 0) + 1, acc), {}) ).filter(c => c > 1).length; // 测试用例 const array1 = [1,2,3,4,5,4,1]; console.log(countDuplicateElements(array1)); // 输出 2 console.log(countDuplicate(array1)); // 输出 2
Python 版本
from collections import Counter def count_duplicate_elements(arr): count_result = Counter(arr) return sum(1 for v in count_result.values() if v > 1) # 测试用例 array1 = [1,2,3,4,5,4,1] print(count_duplicate_elements(array1)) # 输出 2
以上述示例数组[1,2,3,4,5,4,1]为例,元素1和4的出现频次均为2,其余元素频次为1,最终符合要求的重复元素总个数为2,和预期输出一致。
内容的提问来源于stack exchange,提问作者Ahsan Hafeez
相关产品推荐
相关产品推荐

