如何在 javascript 中展平具有 3 个条目的二维数组?

How do I flatten a two-dimensional array with 3 entries in javascript?

我被要求编写一个函数 'flat' 来展平具有 3 个条目的二维数组。该函数应该 return 一个包含 9 个元素的数组。

例如,console.log (flat([[1,2,3], [5,7,8], [9,4,6]])) 应该 return [1,2,3,5,7,8,9,4,6]

我的代码是这样的:

  function flat(arr){
     
        let newArr = [];

        for (var i =0; i< 3; i++){

            for (var j = 0; j< 3; j++){

                return newArr.concat(arr[i][j]);
            }
        }

   }

   console.log (flat([[1,2,3], [5,7,8], [9,4,6]]));   

使用此代码,我只有数组 newArr 中的第一个元素 [1],returned。谁能帮忙解决这个问题?或者还有其他方法可以展平二维数组吗?谢谢

function flat(arr){
  let newArr = [];
  for (var i =0; i< 3; i++){
      for (var j = 0; j< 3; j++){
          newArr.push(arr[i][j]);
      }
  }
  return newArr;
}

console.log (flat([[1,2,3], [5,7,8], [9,4,6]]));   

您需要将 return 语句移出循环,否则它将在第一次到达该行时退出函数。

您可以使用内置数组方法.flat()来完成此操作。

在你的例子中

function flat(array) {
    return array.flat()
}

片段

function flat(arr) {
  return arr.flat()
}

console.log(flat([
  [1, 2, 3],
  [5, 7, 8],
  [9, 4, 6]
]));