[英]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.