2013-08-22 54 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);