【總結】從一個數組中找出重復最多的元素,並統計重復個數


  1. 通過json,將數組中的值都傳給json中的鍵,利用json中的鍵是不能重復的性能,同時如果遇到重復的鍵,那就讓這個鍵的值自增1,這樣就能統計出重復次數
  2. 上面的方法可以得出一個json,但是還不夠,因為無法比較json里的鍵或者值的大小,就要再將Json里的每組數據組成一個個小的json裝到一個數組中,將統計的數量賦給每個json中的值,利用數組的sort的比較函數進行排序即可
 
function myMaxElement(arr){
var json = {};
for (var i=0; i<arr.length; i++) {
if(json[arr[i]]){ //這個思想很重要,在將數組中元素放入json中時判斷json的鍵是否已經出現過,如果沒有,那讓這個鍵賦值1,如果已經出現,則讓它的值自增1
json[arr[i]]++;
}else{
json[arr[i]] = 1;
}
}
var newArr = [];
for (var name in json){
var newJson = {};
newJson.a = name; //循環json,將每組數據的鍵傳給新json的a,值傳給新json的b
newJson.b = json[name];
newArr.push(newJson);//再將這個新json添加到新數組中,這樣新數組中都是一個個小json,每個json都有2組元素,它們的鍵分別是a和b
}
 
newArr.sort(function(n1,n2){
return n1.b - n2.b; //通過比較函數,對比每個小json中b的大小將每個小json排序
});
return newArr[newArr.length-1].a + ':' + newArr[newArr.length-1].b; //得到出現最多的鍵,和它出現的次數
}
var arr = [1,4,5,6,3,4,6,6,6,4,6,6,4,3,2,3,4,5,3,4,7,8,9,7,8,6,5,4];
console.log(myMaxElement(arr));
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM