以此開始我部落格生涯
----------------------------------- ------------------警醒自己
題目:陣列中重複次數最多的元素
廢話不多說,直接上程式碼- ------
第一種方法:
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中文網其他相關文章!