Javascript 从每个子数组返回具有最大数目的数组

Javascript 从每个子数组返回具有最大数目的数组,javascript,arrays,algorithm,Javascript,Arrays,Algorithm,各位程序员 我马上开始,正如你从标题中猜到的,我想返回一个数组,由每个子数组中的所有最大数组成。我有正确的密码。然而,有一行代码我不明白。我使用了freecodecamp的提示。 我不懂的那行被注释掉了//这是我不懂的那行。特别是arr[i][0]上的[0]。[0]的目的是什么。当我取出它以查看控制台上显示的结果时,它将按原样返回数组,而不是返回包含每个子数组中所有最大数字的数组 谢谢 function myFunc(arr) { var resultArray = []; fo

各位程序员

我马上开始,正如你从标题中猜到的,我想返回一个数组,由每个子数组中的所有最大数组成。我有正确的密码。然而,有一行代码我不明白。我使用了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);
函数myFunc(arr){
var resultArray=[];
对于(变量i=0;ilargstnuminech){
largstNumInEach=arr[i][j]
}
}
resultArray[i]=每个都是大的;
}
返回结果数组;
}
var list=myFunc([[4,5,1,3],[13,27,18,26],[32,35,37,39],
[1000, 1001, 857, 1]]);
控制台日志(列表);

它将从第0个索引中获取元素。这就是它的工作原理

(var i=0;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]
将是相应数组第0个索引处的元素

对于i=0,
arr[0][0]
将为4,对于i=1,
arr[1][0]
将为13,依此类推

已经说过,可以使用数组映射函数和
Math.max

函数myFunc(arr){
返回arr.map(函数(项){
返回Math.max.apply(空,项)
})
}
var list=myFunc([
[4, 5, 1, 3],
[13, 27, 18, 26],
[32, 35, 37, 39],
[1000, 1001, 857, 1]
]);
console.log(列表);
这是一个工作函数:
constmyfunc=(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);
因为您需要记录
resultArray
?也许只需要记录
largestNumInEach
来查看它是什么?您也可以使用
list.map(a=>Math.max(…a))
var largstNumInEach=arr[i][0];
它只是第一个要与其他元素进行比较的元素。但您还需要从1开始下一个循环,进行比较(var j=1;
以避免额外的操作