刷题的时候碰到了一个场景需要建造一个3*3的二维数组
用的方式是new Array(3).fill(new Array(3).fill(''))
出现的一个问题是当修改了里面某一个值的时候,其他的值也改变了,第一反应是 引用了同一片存储地址
后来是用了
new Array(3).fill().map(arr=>new Array(3).fill(''))解决
百度了一下,fill()引用问题的时候确实会有这种情况,但是没有搜到原理,所以个人猜想应该是这句话被解析成
const fillData = new Array(3).fill('');
const array = new Array(3).fill(fillData)
不知道有没有大佬可以看到然后解答一下