我需要返回一个由每个提供的子数组中最大数字组成的数组。所以,我编写了以下代码并且它有效,但我有:
[[25],[48],[21],[-3]]
而不是 [25,48,21,-3]
。我可以改变一些东西以获得正确的答案吗?
function largestOfFour(arr) {
for (let i = 0; i < arr.length; i++) {
arr[i].sort(function(a,b) {
return b - a;
}).map(function() {
return arr[i].splice(1);
})
}
return arr;
}
var result = largestOfFour([[17, 23, 25, 12], [25, 7, 34, 48], [4, -10, 18, 21], [-72, -3, -17, -10]]);
console.log(result);
最佳答案
您可以使用 map
和扩展语法 ...
来返回一维数组,如 @str 所指出的。
function largestOfFour(arr) {
return arr.map(a => Math.max(...a))
}
const arr = [[17, 23, 25, 12], [25, 7, 34, 48], [4, -10, 18, 21], [-72, -3, -17, -10]]
const result = largestOfFour(arr);
console.log(result)
您还可以使用reduce
function largestOfFour(arr) {
return arr.reduce((r, a) => r.concat(Math.max(...a)), [])
}
const arr = [[17, 23, 25, 12], [25, 7, 34, 48], [4, -10, 18, 21], [-72, -3, -17, -10]]
const result = largestOfFour(arr);
console.log(result)
关于javascript - 如何返回不同的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54006957/