现有以下一个数组,里面有几个重复的元素,找出重复次数最多的元素,并列出每个元素重复多少次 var arr= ["a","b","c","a","a","b","d","e","f","c","g","d","e","g","a","c","a" ,"h","a"];
时间: 2024-11-03 13:07:36 浏览: 28
JavaScript求一个数组中重复出现次数最多的元素及其下标位置示例
5星 · 资源好评率100%
可以使用JavaScript的哈希表(对象字面量或Map)来解决这个问题。首先遍历数组,统计每个元素的出现次数。然后遍历这个计数对象,找到重复次数最多的元素。
```javascript
var arr = ["a", "b", "c", "a", "a", "b", "d", "e", "f", "c", "g", "d", "e", "g", "a", "c", "a", "h", "a"];
let count = {};
for(let i = 0; i < arr.length; i++) {
if(arr[i] in count) {
count[arr[i]]++;
} else {
count[arr[i]] = 1;
}
}
let maxCount = 0;
let mostFrequentElements = [];
for(let item in count) {
if(count[item] > maxCount) {
maxCount = count[item];
mostFrequentElements = [item]; // 如果当前元素的重复次数最多,清空之前的列表
} else if(count[item] === maxCount) {
mostFrequentElements.push(item); // 否则如果等于最大值,添加到列表中
}
}
console.log("重复次数最多的元素及重复次数:", mostFrequentElements);
console.log("每个元素的重复次数:", count);
// 输出示例:
// 重复次数最多的元素及重复次数: ["a", "a"]
// 每个元素的重复次数: {a: 5, b: 2, c: 3, d: 2, e: 2, f: 1, g: 2, h: 1}
```
阅读全文