所以我试图在 JavaScript 中创建一个二维数组,但我不确定我做错了什么。
这是我的代码。
var result = [];
var temp = [];
for(var i=0;i<3;i++){
temp.push(0);
}
for(var i=0;i<3;i++){
result.push(temp);
}
所以这应该创建一个 3x3 的数组。现在这应该是只为第二行的值赋值的代码。
result[1][1] = 'red';
但这只会导致整行发生更改。
[[0, 'red', 0],
[0, 'red', 0],
[0, 'red', 0]]
我在我的网站、codepen 上、甚至在控制台上都试过了,结果都是一样的。我真的不知道我做错了什么。
最佳答案
result
中的所有三个条目都是对完全相同的 temp
数组的引用。对其中一项的更改会导致其他项的更改,因为它们实际上是同一件事。
相反,您需要创建三个单独的数组。例如:
var result = []
for (var i = 0; i < 3; i++) {
result[i] = [];
for (var j = 0; j < 3; j++) {
result[i][j] = 0;
}
}
关于javascript - 在二维数组中分配值时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46187904/