簡體   English   中英

javascript減少數組中的find max

[英]javascript reduce find max in array of arrays

我想在數組的數組內分別找到每個數組的第一和第二個元素之間的最大數目:

 function largestOfElements(mainArray) { return mainArray.map(function(subArray) { return subArray.reduce(function(previousLargestNumber, currentLargestNumber) { return (currentLargestNumber > previousLargestNumber) ? currentLargestNumber : previousLargestNumber; }, 0); }); } console.log(largestOfElements([ [], [13, 47], [38, 35], [24, 34] ])); 
 .as-console-wrapper { max-height: 100% !important; top: 0; } 

當前方式將返回每個數組中數量最大的數組。 如何返回最大的第一個元素和最大的第二個元素? 預期結果將是:

[38, 47]

您可以使用函數reduce

  • 函數reduce的初始值是開始獲得最大值的最小值。
  • 檢查當前數組的長度。
  • 使用解構分配獲取第一個和第二個值[first,second]。
  • 分別對照第一和第二檢查當前值以獲得最高值。

 var array = [ [], [13, 47], [38, 35], [24, 34] ]; var result = Object.values(array.reduce((a, c) => { if (c.length) { var [first, second] = c; if (first > af) af = first; if (second > as) as = second; } return a; }, {f: Number.MIN_VALUE, s: Number.MIN_VALUE})); console.log(result); 
 .as-console-wrapper { max-height: 100% !important; top: 0; } 

暫無
暫無

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

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