繁体   English   中英

JavaScript-数组-更改一个元素,但是为什么整列都更改了?

[英]JavaScript - Array - change one element but why the whole column changed?

我是JavaScript新手,我想初始化2D数组并更改字符之一。 但是,当我更改数组值之一(例如abc [1,1])时,整个列都会更改。 我想问为什么以及如何预防呢? 我试图使用.slice进行复制,但似乎不起作用

My prefered result
- - -
- 1 -
- - -

The actual ans:
- 1 -
- 1 -
- 1 -


//My code:
var abc = new Array(3,3)
for(var i =0; i<3;i++)   
   for(var j =0; j<3;j++)
      abc[i,j]="-"

abc[1,1] ="1"

for(var i =0; i<3;i++){
    for(var j =0; j<3;j++)
        document.writeln(abc[i,j]+" ")
    document.writeln("<br \>")
}

逗号运算符计算两个表达式并返回最后一个。 所以i,j返回j

实际上,您使用的是一维数组,而不是二维数组。

正确的方法是:

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";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM