javascript - 基本算法脚本: Return Largest Numbers in Arrays (JavaScript)

标签 javascript arrays

我应该返回一个由每个子数组中最大数字组成的数组。这是我的代码:

function largestOfFour(arr) {
  let largestNum = [0,0,0,0];
  for (let i = 0; i < arr.length; i++) {
    for (let j = 0; j < arr[i].length; j++) {
      if (arr[i][j] > largestNum[i]) {
        largestNum[i] = arr[i][j];
      }
    }
  }
  return largestNum;
}

largestOfFour([[4, 5, 1, 3],[13, 27, 18, 26],[32, 35, 37, 39],[1000, 1001, 857, 1]]);

我通过了除一项之外的所有测试。

largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]) 

应该返回一个数组。 通过

largestOfFour([[13, 27, 18, 26], [4, 5, 1, 3], [32, 35, 37, 39], [1000, 1001, 857, 1]]) 

应该返回[27, 5, 39, 1001] 。 通过

largestOfFour([[4, 9, 1, 3], [13, 35, 18, 26], [32, 35, 97, 39], [1000000, 1001, 857, 1]]) 

应该返回[9, 35, 97, 1000000] .

largestOfFour([[17, 23, 25, 12], [25, 7, 34, 48], [4, -10, 18, 21], [-72, -3, -17, -10]]) 

应该返回[25, 48, 21, -3] 。 失败

如果有人愿意告诉我我做错了什么,那将会非常有帮助。谢谢

最佳答案

您可以通过解构每个子数组来简单地使用 Math.max:

function largestOfFour(arr) {
  return arr.map(subarr => Math.max(...subarr));
}

console.log(largestOfFour([[4, 5, 1, 3],[13, 27, 18, 26],[32, 35, 37, 39],[1000, 1001, 857, 1]]));

console.log(largestOfFour([[17, 23, 25, 12], [25, 7, 34, 48], [4, -10, 18, 21], [-72, -3, -17, -10]]));

关于javascript - 基本算法脚本: Return Largest Numbers in Arrays (JavaScript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51950486/

相关文章:

javascript - 从保存的文本区域 react 显示换行符

javascript - 如何在转换返回对象的一部分时在 Javascript 中执行数组映射?

javascript - 生成多个具有不同条件的数组

arrays - 检索快照时,如何使用数组中的最后一个值作为 .child() 的路径?

javascript - 如何在 fullpage.js 中垂直居中图像?

javascript - 更改小数点后的字体大小

javascript - 为什么 Firefox 打印后不重定向?

c - 交换函数返回一个不在我的数组中的数字

javascript - 这个 Javascript 计数循环是如何工作的? - 创建测验的输出

javascript - javascript 中的对象数组未按预期返回