Js找出数组中出现次数最多的元素
题目: 找出数组中出现次数最多的元素
给定一个数组,找出数组中出现次数最多的元素。
示例 1:
给定数组 nums = [3,1,2,1,3,4,3,5,3,6,3],
函数应该返回: 次数最多的元素为:3, 次数为:5
答案
解法1:
const findMost = arr => {
let hash = {};
let maxNum = 0;
let maxEle = null;
for (var i = 0; i < arr.length; i++) {
hash[arr[i]] === undefined ? hash[arr[i]] = 1 : hash[arr[i]]++;
if (hash[arr[i]] > maxNum) {
maxEle = arr[i];
maxNum = hash[arr[i]];
}
}
return `次数最多的元素为:${maxEle}, 次数为:${maxNum}`;
}const findMost = arr => {
let maxEle;
let maxNum = 1;
let obj = arr.reduce((p, item) => {
p[item] ? p[item]++ : p[item] = 1;
if(p[item] > maxNum){
maxEle = item;
maxNum++;
}
return p;
}, {});
return `出现次数最多的元素为:${maxEle},出现次数为:${maxNum}`;
}本文内容仅供个人学习/研究/参考使用,不构成任何决策建议或专业指导。分享/转载时请标明原文来源,同时请勿将内容用于商业售卖、虚假宣传等非学习用途哦~感谢您的理解与支持!