算法面试题:取出嵌套数组中每个数组最大值,作为新数组输出

345 阅读1分钟

写一个方法,输出里面每一个数组最大值,放进一个新数组后输出这个新数组

例如

arr = [[ 23, 32, 12], [33, 43, 343], [22, [232, 32, 3]]]

// 期望输出结果为: [32, 343, 232]

其中一种解法如下

function biggestArr(arr){
  let result = [];
  // 遍历里面嵌套的数组
  for(let i=0;i<arr.length;i++){
    // 进行操作前先用 flat() 展开数组
    flatArr = arr[i].flat()
    // 假设数组第一个数字为最大值
    let max = flatArr[0];
    // 遍历里面嵌套数组里的元素
    for(let j=1; j<arr[i].length;j++){
      if(max < arr[i][j]){
        max = arr[i][j]
      }
    }
    result[i] = max
  }
  return result;     
}
//验证
let arr = [[ 23, 32, 12], [33, 43, 343], [22, [232, 32, 3]]]
console.log(biggestArr(arr)) // [32, 343, 232]