手动创建2D阵列并编辑特定元素时,我会得到所需的结果。如果我使用for循环创建它并编辑数组中的一个元素,它会更改每一行中的整个数组,然后编辑整个列。
有没有更好的方法来创建带有for循环的2D数组以避免这种行为?
var grid = [1,2,3];
var gridRows = ["O","O","O"];
for (var i = 0; i < grid.length; i++) {
for(var j = 0; j < grid.length; j++) {
grid[i] = gridRows;
}
}
//--------------------
//The manually created 2D Array
manualGrid = [["O","O","O"],["O","O","O"],["O","O","O"]];
答案 0 :(得分:0)
数组是javascript中的对象,通过引用传递。要避免这种情况,只需将代码更改为:
{{1}}