要求是:给定一个数组,数组中含有各个子数组,分别获取子数组中的最大值,组成一个新数组并返回这个数组的值
思路是 双层for循环嵌套获取各子数组中的最大值 形成一个新数组并返回
代码如下:
function largestOfArray(arr){
let maxArr = [];
for(let i=0;i<arr.length;i++){
for(let j=0;j<arr[i].length;j++){
if(j==0){
maxArr[i] = arr[i][j];
}else{
maxArr[i] = arr[i][j]>maxArr[i]?arr[i][j]:maxArr[i];
}
}
}
return maxArr;
}
largestOfArray([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);
使用reduce()实现
function largestOfArray(arr){
return arr.reduce((acc,item)=>{
let maxArr = Math.max(...item);
return [...acc,maxArr];
},[])
}
largestOfArray([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);