簡體   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