2016-11-18 58 views
0

我有我需要返回3個值的最高出現次數的javascript數組。可以說我們有這樣一個數組。在javascript數組中查找出現次數最多的3個值。我只需要最多發生3次

[1,3,4,5,2,3,4,5,6,7,8,5,4,5,3,5,6,7,3,5,6,5,6,3,4,5,6,6] 

1 - 1時間 2 - 1時間 3 - 5倍 4 - 4倍 5 - 8倍 6 - 6倍 7 - 2倍 8 - 1時間

我們如何使用jQuery返回3個值(在本例中爲4,5和6)。

希望是有道理的。

在此先感謝。

+0

有沒有這樣的事,作爲一個jQuery的陣列,這是一個JavaScript數組 –

+0

好吧,更正:) –

+0

你可以檢查[這個問題](HTTP://計算器。 com/questions/5658547/is-there-any-way-to-count-of-a-jquery-array) –

回答

0
var arr = [1,3,4,5,2,3,4,5,6,7,8,5,4,5,3,5,6,7,3,5,6,5,6,3,4,5,6,6]; 

var x = arr.reduce(function(result, item) { 
    result[item] = result[item] || {count:0}; 
    ++result[item].count; 
    return result; 
}, {}); 
var y = Object.keys(x).sort(function(a, b) { 
    return x[b].count - x[a].count; 
}).slice(0,3); 
console.log(y); 
+0

看起來像 這就是我要的。我會檢查它並讓你知道。謝謝:) –

+0

就是這樣。答覆接受。感謝你的付出! –

0

var arr = [5, 5, 5, 2, 2, 2, 2, 2, 9, 4,1,1,2,1,1,1,3,3,3,3,3]; 
 
var counts = {}; 
 

 
for(var i = 0; i< arr.length; i++) { 
 
    var num = arr[i]; 
 
    counts[num] = counts[num] ? counts[num]+1 : 1; 
 
} 
 
console.log(counts);// return object which return key value pair count like Object {2: 5, 4: 1, 5: 3, 9: 1} 2 five time,4 one time, 5 three time in array 
 
var keysSorted = Object.keys(counts).sort(function(a,b){return counts[a]-counts[b]}) 
 
alert(keysSorted); 
 

 
alert(keysSorted); //this is asc order, last 3 values are max occurance

相關問題