Javascript 更改多维数组中的一个单元格将更新整个列

Javascript 更改多维数组中的一个单元格将更新整个列,javascript,google-chrome,Javascript,Google Chrome,在Chrome控制台中创建新的多维数组时,如下所示: var array = Array(10).fill(Array(10).fill(false)); 阵列看起来与预期一致(使用控制台检查。表): 但当尝试仅更改数组中的一个单元格时:array[5][5]=true发生了一些奇怪的事情: 因为这个原因,我的头撞在墙上已经有一段时间了,但是我想不出来。这可能是一个错误,因为Array.fill是一个实验性/新功能?这是因为您实际上只创建了两个数组。您创建了一个包含10个元素的内部数组,然

在Chrome控制台中创建新的多维数组时,如下所示:

var array = Array(10).fill(Array(10).fill(false));
阵列看起来与预期一致(使用
控制台检查。表
):

但当尝试仅更改数组中的一个单元格时:
array[5][5]=true发生了一些奇怪的事情:


因为这个原因,我的头撞在墙上已经有一段时间了,但是我想不出来。这可能是一个错误,因为Array.fill是一个实验性/新功能?

这是因为您实际上只创建了两个数组。您创建了一个包含10个元素的内部数组,然后创建了一个包含10个元素的外部数组,每个元素引用相同的内部数组。当您更改内部数组的一个元素,然后查看外部数组时,您将看到内部数组中的相同更改重复了10次


改为使用循环创建外部数组,以便为外部循环的每个元素创建新的内部数组。

就这样,谢谢!我最终创建了如下数组:
array(10.fill().map(=>array(10.fill)(false))
。请参阅和