2014-04-30 56 views
-1

我想知道是否有任何使用Javascript獲取N最大/最小數的簡單方法。使用Javascript在數組中獲取最大N個數字

例如:

得到[3,9,8,1,2,6,8]

想要的最多3個元件

Will return [9,8,8] 
+1

你有你可以使用什麼樣的策略有什麼想法,或者你知道任何可能有用的功能嗎?我會給你一個提示:你需要的一切都在'Array.prototype'上。 – Ryan

回答

1

也許像這個,

var numbers = [3,9,8,1,2,6,8]. 

numbers.sort(function(a, b) { 
    return a - b; 
}).slice(-3); // returns [8, 8, 9] 

Mo再在這裏的Array.sort信息, https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

+0

這是一個詞法排序,它可能會更好地使用「切片」。 – Ryan

+0

在這種情況下,例如40小於5,所以它應該工作 –

+0

@ArtemPetrosian:你怎麼知道這種情況是什麼? – Ryan

2

最簡單的辦法是進行排序數組,比得到的最後3個或第數字

// initial array 
var a = [ 5, 2, 6, 10, 2 ]; 

// you need custom function because by default sort() is alphabetic 
a.sort(function(a,b) { return a - b; }); 

// smallest numbers 
console.log(a.slice(0,3)); 

// biggest numbers 
console.log(a.slice(-3)); 
+0

這將從陣列中移除最小的三個數字。 – Ryan

相關問題