javascript - 二维数组在 JavaScript 中出现意外结果

标签 javascript arrays

如果我在 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/

相关文章:

C++ 代码在 GDB online 中有效,但在代码 :Blocks 中无效

javascript - 确定一个整数是否可以表示为回文和

javascript - 使用依赖注入(inject)的 TypeScript 应用程序初始化

sql - Postgres |如何从包含多个 JSON 对象的 JSON 数组中提取值

arrays - 如何替换数组中的值

arrays - Kotlin 中的二维 Int 数组

javascript - Redux reducers——改变深度嵌套状态

javascript - 如何控制台记录 promise ?

javascript - jQuery-如何在尝试切换另一个 div 时关闭由 h2 元素切换的 div?

javascript - 处理 JQuery 元素数组以与复选框交互