使用js reduce方法求数组中出现次数最多的元素

直接贴代码

function getMost(arr) {
    let max=null;    //出现次数最多的元素
    let num=1;    //该元素出现次数
    arr.reduce((p,k)=>{    //对该数组进行reduce遍历
        p[k]?p[k]++:p[k]=1;  //k代表当前正在遍历的元素。应用到p[k]里,k表示p对象里的一个键,p[k]表示该键对应的值。不懂的话用如下图对象测一下就懂了
        if(p[k]>num){
            num=p[k]
            max=k  
        }
        return p    //最后返回一个对象
       },{})
       return {max:max,num:num}   
}
let arr=[2,3,4,5,'a',2,3,2,'a','d','b']
getMost(arr)

要搞清楚这个方法,得先了解js的reduce方法


此博客写的比较清楚 https://www.cnblogs.com/smallpen/p/10249288.html

posted @ 2020-03-19 16:15  huihuihero  阅读(1282)  评论(0编辑  收藏  举报