目录

JS二维数组初始化

【JS】二维数组初始化

1. 错误写法

const arr = new Array(2).fill(new Array(2).fill(0));   // [ [ 0, 0 ], [ 0, 0 ] ]
arr[0][0] = 1;  //  错误 [ [ 1, 0 ], [ 1, 0 ] ]

2. 正确写法1

fill + map

const arr = new Array(2).fill(0).map(() => new Array(2).fill(0));
arr[0][0] = 1;  // 正确 [ [ 1, 0 ], [ 0, 0 ] ]

3. 正确写法2

for 循环创建

const arr = new Array(2);
for (let i = 0; i < arr.length; i++) {
  arr[i] = new Array(2).fill(0);
}
arr[0][0] = 1;  // 正确 [ [ 1, 0 ], [ 0, 0 ] ]

4. 正确写法3

双重 for 循环逐元素填充

const arr = new Array();
for (let i = 0; i < 2; i++) {
  arr[i] = new Array();
  for (let j = 0; j < 2; j++) {
    arr[i][j] = 0;
  }
}
arr[0][0] = 1;  // 正确 [ [ 1, 0 ], [ 0, 0 ] ]

参考