为什么使用网格构建的二维矩阵与使用新Array()使用嵌套数组构建的相同二维矩阵不同?

问题描述 投票:1回答:1
我正在尝试通过使用JavaScript新数组来避免对二维矩阵网格进行硬编码。从理论上讲,它可以工作,但实际上,我收到一个错误。while hardcoded grid swaps nearest gems fine, the new Array swaps them almost randomly with the same code

me.tileGrid = new Array(6).fill(new Array(6).fill(null)); /* The upper code is potentially scalable, but it doesn't work same */ me.tileGrid = [ [null, null, null, null, null, null], [null, null, null, null, null, null], [null, null, null, null, null, null], [null, null, null, null, null, null], [null, null, null, null, null, null], [null, null, null, null, null, null] ];

我正在尝试通过使用JavaScript新数组来避免对二维矩阵网格进行硬编码。从理论上讲,它可以工作,但实际上,我收到一个错误。硬编码网格可以很好地交换最近的宝石,而新的数组可以交换...
javascript arrays multidimensional-array grid
1个回答
0
投票
原因是使用fill()。当您将一个带有对象(引用类型)的数组时,每个元素都引用内存中的相同值
© www.soinside.com 2019 - 2024. All rights reserved.