以此开始我博客生涯
-----------------------------------------------------警醒自己
题目:数组中重复次数最多的元素
废话不多说,直接上代码-------
第一种方法:
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<l;i++) { if (!res[arr[i]]) { res[arr[i]] = 1; } else { res[arr[i]]++; } } // 遍历 res var keys = Object.keys(res); console.log(keys); var maxNum = 0, maxEle; for (var i=0,l = keys.length;i<l;i++) { if (res[keys[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,如果最多重复次数的元素有多个,则返回最后一个元素。
以上是如何找出数组中重复次数最多的元素的详细内容。更多信息请关注PHP中文网其他相关文章!