嘿同事们,
我会正确的,正如你从标题中猜到的那样,我想返回一个由每个子数组中所有最大数字组成的数组。我有正确的代码。但是,有一行代码我不明白。我使用了freecodecamp的提示。 我不理解的那条线被注释掉//这是我不理解的那条线。特别是arr [i] [0]上的[0]。什么是[0]的目的。当我拿出它来查看控制台上显示的结果时,它会按原样返回数组,而不是每个子数组中包含所有最大数字的数组。
谢谢,
function myFunc(arr) {
var resultArray = [];
for (var i = 0; i < arr.length; i++) {
var largstNumInEach = arr[i][0]; //this is the line i dont understand.
for (var j = 0; j < arr[i].length; j++) {
if(arr[i][j] > largstNumInEach) {
largstNumInEach = arr[i][j]
}
}
resultArray[i] = largstNumInEach;
}
return resultArray;
}
var list = myFunc([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39],
[1000, 1001, 857, 1]]);
console.log(list);
答案 0 :(得分:0)
它将从第0个索引获取元素。这是它的工作方式。
此行for (var i = 0; i < arr.length; i++) {
将遍历此数组。
[[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]
再次由子数组组成。
因此,arr[i]
将[4, 5, 1, 3]
,[13, 27, 18, 26]
....
因此,当i=0
arr[i]
[4, 5, 1, 3]
i=1
时arr[i]
[13, 27, 18, 26]
为arr[i][0]
,等等。
因此arr[0][0]
将是相应数组
对于i = 0,arr[1][0]
将为4,对于i = 1,Math.max
将为13,依此类推
说过可以使用数组映射函数和function myFunc(arr) {
return arr.map(function(item) {
return Math.max.apply(null, item)
})
}
var list = myFunc([
[4, 5, 1, 3],
[13, 27, 18, 26],
[32, 35, 37, 39],
[1000, 1001, 857, 1]
]);
console.log(list);
dateCliente
&#13;
答案 1 :(得分:0)
这是一个有效的功能:
const myFunc = (arr) => arr.map(innerArray => Math.max(...innerArray));
var list = myFunc([
[4, 5, 1, 3],
[13, 27, 18, 26],
[32, 35, 37, 39],
[1000, 1001, 857, 1]
]);
console.log(list);