编辑JavaScript 2D数组中的特定元素,而不是列

时间:2017-11-09 18:08:34

标签: javascript for-loop matrix multidimensional-array

手动创建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;
    }
}

Image of the for loops output

//--------------------
//The manually created 2D Array
manualGrid = [["O","O","O"],["O","O","O"],["O","O","O"]];

Image of the manual methods output in console

1 个答案:

答案 0 :(得分:0)

数组是javascript中的对象,通过引用传递。要避免这种情况,只需将代码更改为:

{{1}}