javascript - 基本算法脚本:返回数组中的最大数 (JavaScript)
问题描述
我应该返回一个由每个子数组中的最大数组成的数组。这是我的代码:
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]]));
推荐阅读
- php - 如何使用 PHP 更新 oracle 上的 CLOB 列
- asp.net-core - URL 重写,无法使 page1/page2 路径正常工作
- web - 我的服务器在哪里替换 ### 字符串?
- sql - Spring data jpa 插入多个表以避免锁定表
- excel - 为特定工作表转换特定列中的公式
- oracle - 更新后插入行(不是新的)的触发器
- javascript - 带有nodejs的“POST”表单未定义
- php - 将文件上传到用户的 Google Drive 帐户
- unity3d - AR Foundation 中的区域目标
- mongodb - $sum 字符串值与数组 MongoDB 中的 $cond