JS二维数组创建

69 阅读1分钟

在这里插入图片描述

Way 1:

map() + fill()

const fillArr = new Array(6);
const matrix = fillArr.map(_ => new Array(6).fill(1));
matrix[0][0] = 0;
console.log(matrix);

链接(组合),相同结果

const matrix = new Array(6).fill().map(_ => new Array(6).fill(1));

Way 2 :

for + fill()

for (let i = 0; i < arr.length; i++) {
  arr[i] = new Array(6).fill(1);
}
arr[0][0] = 0;
console.log(arr);

Way 3 :

一个(算是)错误创建,同一指针指向

在JS的栈堆中,指针指向同一地址,因此同一纬度的都会同时被改变

在这里插入图片描述

fill() + fill()

let arrError = fillArr.fill(new Array(6).fill(1));
arrError[0][0] = 0;
arrError[0][1] = 99;
console.log(arrError);

在这里插入图片描述