javascript - 获取多维数组中的最大值

时间:2015-02-20 18:08:29

标签: javascript

我使用this tutorial来获取多维数组的最大“第一个”[0]值。

array = [[1, 5], [4, 7], [3, 8], [2, 3],  
 [12, 4], [6, 6], [4, 1], [3, 2], 
 [8, 14]]

 array.reduce(function(max, arr) {
        return max >= arr[0] ? max : arr[0];
}, -Infinity);

但我如何获得其他相关值?换句话说,因为[12, 4] 12是最高值,但我怎么能得到'4'?
 从第一个val中排序数组后, * note ,我需要访问所有值。

3 个答案:

答案 0 :(得分:2)

该代码仅检查嵌套数组的第一个值。如果对你没问题,你只需存储整个嵌套数组,而不是第一个值。所以:

var result = array.reduce(function(max, arr) {
    return max[0] >= arr[0] ? max : arr;
});

请注意,我删除了-Infinity,在这种情况下,第一次迭代将从数组的第一项开始(在您的情况下为[1, 5])。 现在,您可以使用12result[0]使用4访问result[1]

答案 1 :(得分:1)

听起来你想要对列表进行排序并从第一个结果中获取第二项:

array.sort(function(a,b) { 
   return a[0] > b[0] ? -1 : 1 
})[0][1]; -- 4

答案 2 :(得分:0)

您可以尝试以下操作:

array.reduce(function(max, arr) {
    return max >= arr[0] ? max : arr[0];
});

或者您可以使用Math.max:

array.reduce(function(max, arr) { 
    return Math.max(max, arr[0]); 
});