簡體   English   中英

javascript - 獲取多維數組中的最大值

[英]javascript - Get largest value(s) in multi-dimensional array

我正在使用本教程來獲取多維數組的最大“第一個”[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排序數組后,我需要訪問所有值。

該代碼僅檢查嵌套數組的第一個值。 如果對你沒問題,你只需存儲整個嵌套數組,而不是第一個值。 所以:

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

請注意,我刪除了-Infinity ,在這種情況下,第一次迭代將從數組的第一項開始(在您的情況下為[1, 5] )。 所以現在你可以使用result[0]4使用result[1]訪問12

聽起來你想要對列表進行排序並從第一個結果中獲取第二個項目:

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

您可以嘗試以下方法:

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]); 
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM