我是JavaScript新手,我想初始化一个2D数组并更改其中一个字符。但是,当我更改其中一个数组值时,例如abc [1,1],整列改变了。我想问为什么以及如何预防呢?我曾尝试使用.slice制作副本,但似乎不起作用
positionOffset
答案 0 :(得分:2)
comma operator计算两个表达式并返回最后一个表达式。因此i,j
会返回j
。
实际上,您使用的是1D阵列,而不是2D阵列。
正确的方法是:
var abc = Array(3);
for(var i=0; i<3; ++i) {
abc[i] = Array(3);
for(var j=0; j<3; ++j)
abc[i][j] = "-"
}
abc[1][1] = "1";