我想分别在数组数组中的每个数组的第一个和第二个元素中找到最大数字:
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]
答案 0 :(得分:2)
您可以使用reduce
功能。
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 > a.f) a.f = first;
if (second > a.s) a.s = second;
}
return a;
}, {f: Number.MIN_VALUE, s: Number.MIN_VALUE}));
console.log(result);

.as-console-wrapper { max-height: 100% !important; top: 0; }