避坑!Array.fill(new Array()) 初始化二维数组
创建一个 m*n 的二维数组
let used = new Array(3).fill(new Array(4))
结果是这样的
当我去填充某一个值时:
used[1][1]=true
这完全不是我想要的结果! 根据文档介绍,fill一个引用数据类型,那么地址指向是相同的,so... 更改一下:
let used = new Array(3);
for (let i = 0; i < 3; i++) {
used[i] = new Array(4);
}
// 或者 直接
let used = new Array(3).fill([]).map(() => new Array(4).fill(true));
转载自:https://juejin.cn/post/7087393048920850446