JavaScript数组问题:查找出现次数最多的元素及并列情况
找出数组中出现次数最多的元素
核心思路
- 统计元素频次:遍历数组,用键值对结构(如对象或Map)记录每个元素的出现次数。
- 确定最大频次:从统计结果中提取所有频次值,找出最大值。
- 筛选高频元素:遍历统计结果,收集所有频次等于最大值的元素。
代码实现(JavaScript)
const arr = ["1", "2", "1", "1", "2", "2", "3"]; // 1. 统计每个元素的出现次数 const frequencyMap = {}; for (const item of arr) { frequencyMap[item] = (frequencyMap[item] || 0) + 1; } // 2. 获取最大出现次数 const maxFrequency = Math.max(...Object.values(frequencyMap)); // 3. 筛选出所有出现次数等于最大值的元素 const mostFrequentElements = Object.keys(frequencyMap).filter(key => frequencyMap[key] === maxFrequency); // 输出结果 console.log(`出现次数最多的元素:${mostFrequentElements.join(', ')}`); console.log(`对应的出现次数:${maxFrequency}`);
结果说明
针对示例数组["1", "2", "1", "1", "2", "2", "3"],运行代码后会得到:
出现次数最多的元素:1, 2
对应的出现次数:3
这是因为"1"和"2"都出现了3次,是数组中出现频次最高的元素,而"3"仅出现1次。
内容的提问来源于stack exchange,提问作者Hán
相关产品推荐
相关产品推荐

