寻求数组中的最大值算法挑战

2019-04-05  本文已影响0人  前端小白加一枚

要求是:给定一个数组,数组中含有各个子数组,分别获取子数组中的最大值,组成一个新数组并返回这个数组的值

思路是 双层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]]);
上一篇 下一篇

猜你喜欢

热点阅读