以此开始我博客生涯
-----------------------------------------------------警醒自己
题目:数组中重复次数最多的元素
废话不多说,直接上代码-------
第一种方法:
function getMost(arr){
var hash = {};
var m = 0;
var trueEl;
var el;
for(var i = 0,len = arr.length; i < len; i++ ) {
el = arr[i];
hash[el] === undefined ? hash[el] = 1 : (hash[el] ++);
if(hash[el] >= m){
m = hash[el];
trueEl = el;
}
}
return trueEl;
}; 第二种方法:
function getMost(arr) {
if (!arr.length) return
if (arr.length === 1) return 1
var res = {}
// 遍历数组
for (var i=0,l=arr.length;i maxNum) {
maxNum = res[keys[i]];
maxEle = keys[i];
}
return maxEle;
} 第三种方法:
Array.prototype.getMost = function(){
var obj = this.reduce((p,n) =>(p[n]++ ||(p[n] = 1),(p.max=p.max>=p[n]?p.max:p[n]), (p.key=p.max>p[n]?p.key:n), p), {});
return 'key: '+ obj.key+ ' len: '+obj.max;}
var arr = [1,2,3,4,2,1,4,2,3,5];
arr.getMost();第三种方法有个bug,如果最多重复次数的元素有多个,则返回最后一个元素。










