问题简述
当我们使用下面代码时会产生一个长度为10的数组
new Array(10).fill([false, false])
但是由于fill的是一个引用数据类型,会导致填充的所有[false,false]其实指向的都是同一个数组,所以只要改变其中一个剩余九个都会一起跟着改变。下边举个例子
解决方法
var arr = Array.apply(null, {length: 10}).map(() => ([false, false]))
或者
var arr = new Array(10)
for(let i =0;i<arr.length;i++){arr[i]=[false,false]}
arr[0][1] = true