我使用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 ,我需要访问所有值。
答案 0 :(得分:2)
该代码仅检查嵌套数组的第一个值。如果对你没问题,你只需存储整个嵌套数组,而不是第一个值。所以:
var result = array.reduce(function(max, arr) {
return max[0] >= arr[0] ? max : arr;
});
请注意,我删除了-Infinity
,在这种情况下,第一次迭代将从数组的第一项开始(在您的情况下为[1, 5]
)。
现在,您可以使用12
和result[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]);
});