创建js二维数组的坑
最近在刷题时遇到了一个二维数组的坑
创建一个二维数组,初始化时需要把所有值填入0,第一行第一列填入1;
在这里插入代码片
let vis = new Array(10).fill(new Array(8).fill(0));
vis[0][0] = 1;
本以为填充二维的数组时使用的new Array,二维的数组应该时多个不同引用类型的数组,但是结果并不是。
改进:
let vis = new Array(10).fill(1).map(()=>{
return new Array(8).fill(0);
});
vis[0][0] = 1;
改进项注意点:
1、创建一维数组时必须填充内容,不然使用map,forEach等数组方法不会进入遍历;
2、在map过程中单独创建新的数组返回;