我在javascript声明2D阵列如下:在JavaScript 2D阵列更新一个对象更新的每一个对象
cell = {visited:false, left:true, top:true, right:true, bottom:true}
cells = new Array(10);
for (i = 0; i < 10; i++) //Initiate 2d cells array.
{
cells[i] = new Array(cell,cell,cell,cell,cell,cell,cell,cell,cell,cell);
}
在代码后来我阵列中更新一个对象:
cells[0][0].visited = true;
但是,在执行此操作后,数组中每个对象的每个访问属性都标记为true。
见你只有一个单细胞,在数组中多次引用。您需要克隆它们,或者在循环中创建每个单元格。 –
您的代码将10次完全相同的对象放入数组中。该数组将包含10个对同一个单一对象的引用。 – Pointy
如何创建单独的单元格对象的数组? – Goblaz