如果我在 JavaScript 中创建一个二维数组并尝试分配一个特定对象,它会改变所有内容。这是我的代码:
var a = [0,1];
var b = [];
b.push(a);
b.push(a);
b[0][0]=5;
alert(b[1][0]);
现在我期望得到0
但我得到 5
。我该如何解决这个问题?
最佳答案
您推送相同的对象引用。通过更改一个值,所有引用都会显示更改后的值。相反,您可以通过获取 Array#slice
来推送数组的副本。 .
var a = [0, 1];
var b = [];
b.push(a.slice());
b.push(a.slice());
b[0][0] = 5;
console.log(b[1][0]);
console.log(b);
关于javascript - 二维数组在 JavaScript 中出现意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56915830/