一、js查找数组中出现最多的元素和次数
测试数据:
var arr = [3, 5, 6, 5, 9, 8, 10, 5, 7, 7, 10, 7, 7, 7, 7, 10, 10, 10, 10, 10];
方法可以参考下面链接
转载于:https://juejin.cn/post/6844903795957170183
二、js查找数组中刚出现最多的元素、次数和第二多的元素、次数
function fn(arr) {
var i;
var length = arr.length;
var hash = [];//使用哈希数组
for (i = 0; i < length; i++) {
if (!hash[arr[i]]) hash[arr[i]] = 1;//没有初始化的数组元素为undefined,undefined++为NaN
else hash[arr[i]]++;
}
var max = 0;//最多的次数
var maxV;//出现最多的元素
var second = 0;//第二多的次数
var secondV;//出现第二多的元素
hash.forEach(function (item, index) {//forEach函数会跳过空元素
if (item > max) {
second = max;
secondV = maxV;
max = item;
maxV = index;//用索引来保存原数组的值
} else if (item > second) {
second = item;
secondV = index;
}
});
return { max, maxV, second, secondV };
}
var { max, maxV, second, secondV } = fn(arr);//ES的元素解构赋值
console.log(max, maxV, second, secondV);