使用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)