javascript - 在二维数组中分配值时遇到问题

标签 javascript arrays

所以我试图在 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/

相关文章:

javascript - 如何允许对数据表进行排序?

合并和缩小文件的 JavaScript 许可证信息

php - 什么是 php v8js 中的扩展?

javascript - 如何使用 three.js 在运行时绘制线段

javascript - 更新对象内的 javascript 数组会更新对象中的所有数组

javascript - 为什么 $(this) 选择器在我的函数内部工作,但在外部工作?

c - 如何在C中计算字符串的字符并将它们分配给不同的组(小写和大写)

ios - swift 原生数组中的初始化器

javascript - 如何从javascript中的段落中获取数组中的url

php - 尝试将 for i+ 放入 mysql 查询、php wordpress 中