繁体   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