2013-08-22 83 views
5

如何獲得最大的數組元素我有一個數組的JavaScript數組:根據他的第二子陣列值

[[-786, 2], [-783, 1], [-782, 5], [-781, 1], [-779, 2], [-778, 1], [-775, 1], [-774, 1], [-773, 1], [-771, 2], [-769, 1], [-767, 1], [-766, 1], [-763, 2], [-760, 2]] 

我怎樣才能獲得基於子陣列的第二元素的值最大的元素?

在上述情況下,我想元素:

[-782, 5] 

因爲5是所有子陣列最大的第二個值。 如果將有多個子數組與第二個更大的值,我想獲得第一個。

馬裏烏什

+0

你檢查這個答案? http://stackoverflow.com/questions/5052673/jquery-min-max-property-from-array-of-elements – Kye

回答

4

執行降序排序基於陣列的每個元件的第二元件上。

var array = [[-786, 2], [-783, 1], [-782, 5], [-781, 1], [-779, 2], [-778, 1], [-775, 1], [-774, 1], [-773, 1], [-771, 2], [-769, 1], [-767, 1], [-766, 1], [-763, 2], [-760, 2]]; 


array.sort(function(a, b) { 
    return b[1] - a[1]; 
}); 

console.log(array[0]); 

jsFiddle Demo

+0

在一次採訪中,您將不被允許使用**排序**,這也是極不推薦的使用排序,因爲它很慢。 – Andy

1
var array = [[-786, 2], [-783, 1], [-782, 5], [-781, 1], [-779, 2], [-778, 1], [-775, 1], [-774, 1], [-773, 1], [-771, 2], [-769, 1], [-767, 1], [-766, 1], [-763, 2], [-760, 2]]; 
var maxElementIndex = 0; 
for (var i = 0; i < array.length; i++) { 
    if (array[i][1] > array[maxElementIndex][1]) { 
     maxElementIndex = i; 
    } 
} 

console.log(array[maxElementIndex]); 
0
var target = [[-786, 2], [-783, 1], [-782, 5], [-781, 1], [-779, 2], [-778, 1], [-775, 1], [-774, 1], [-773, 1], [-771, 2], [-769, 1], [-767, 1], [-766, 1], [-763, 2], [-760, 2]] 
var max = 0, tmp = 0; 
var max_entry, tmp_entry; 
while (target.length > 0){ 
    tmp_entry = target.pop(); 
    tmp = tmp_entry[1]; 
    if (tmp > max){ 
     max = tmp; 
     max_entry = tmp_entry; 
    } 
} 
alert(max_entry);