当初始化数组调用fill时,如果里面是引用数据类型,被填充的是相同地址下的数组,因此修改其中一个引用类型的值,会导致所有引用类型都被修改:
let arr = new Array(3).fill([0,0]); //[[0,0],[0,0],[0,0]]
arr[0][0]=1 //当修改其中一个值时,其他值都被修改
console.log(arr)
// [[1,0],[1,0],[1,0]]
当初始化数组调用fill时,如果里面是引用数据类型,被填充的是相同地址下的数组,因此修改其中一个引用类型的值,会导致所有引用类型都被修改:
let arr = new Array(3).fill([0,0]); //[[0,0],[0,0],[0,0]]
arr[0][0]=1 //当修改其中一个值时,其他值都被修改
console.log(arr)
// [[1,0],[1,0],[1,0]]