为什么使用网格构建的2d矩阵与使用新Array()使用嵌套数组构建的2d矩阵的工作原理不同?>

问题描述 投票:1回答:1

我正在尝试避免通过使用JavaScript new Array()对2d矩阵网格进行硬编码。从理论上讲,它可以工作,但实际上,我收到一个错误。 While a hardcoded grid swaps nearest gems correctly, the new Array method swaps them almost randomly with the same code

new Array

我正在尝试通过使用JavaScript new Array()来避免对二维矩阵网格进行硬编码。从理论上讲,它可以工作,但实际上,我收到一个错误。当硬编码网格正确交换最近的宝石时,新的...

javascript arrays multidimensional-array grid
1个回答
0
投票

原因是使用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] ]; 。当您将创建一个带有对象(引用类型)的数组时,每个元素都将在内存中引用相同的值。根据MDN

© www.soinside.com 2019 - 2024. All rights reserved.