javascript - 如何返回不同的数组?

标签 javascript

我需要返回一个由每个提供的子数组中最大数字组成的数组。所以,我编写了以下代码并且它有效,但我有: [[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/

相关文章:

javascript - 如何在 THREE.js 中获取被点击的元素

php - facebook 从 cookie php 自动重新登录

javascript - 离线(CD、拇指驱动器等)无需安装 HTML + 视频演示?

JavaScript 数组重构

javascript - Php 不能与 ajax 一起工作

javascript - Youtube API 返回当前时间

javascript - 我正在使用 Bootstrap 4 轮播。它适用于所有 Windows 和 Android 操作系统,但不适用于 Mac 和 Iphone 操作系统。有什么解决办法吗?

javascript - 尝试在 JavaScript 正则表达式中重复捕获 block

javascript - 计时器在每次重置时都变得越来越快

javascript - 如何将数据添加到 Firestore 中的嵌套对象