Js找出数组中出现次数最多的元素

摘要:给定一个数组,找出数组中出现次数最多的元素。给定数组 nums = [3,1,2,1,3,4,3,5,3,6,3], 函数应该返回: 次数最多的元素为:3, 次数为:5

题目: 找出数组中出现次数最多的元素

给定一个数组,找出数组中出现次数最多的元素。  

示例 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}`;
}
解法2:
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}`;
}

本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!

链接: https://shenqiku.cn/article/FLY_6833