gpt4 book ai didi

javascript - 如何更新一个 Javascript 对象数组而不更新另一个

转载 作者:行者123 更新时间:2023-12-03 11:34:11 26 4
gpt4 key购买 nike

我创建了一个包含一些值的对象数组。然后我创建了另一个对象数组并用第一个对象数组对其进行初始化。然后我在第二个数组中推送一个值,控制台记录了两个数组。两个数组具有相同的值。为什么会发生这种情况以及我们如何阻止这种情况?

我的代码:

var a = { "filters": [] }; // 1st object array
var keyValue = {};
// pushed 2 values in "a" array
keyValue["abc"] = "123";
a.filters.push(keyValue);
keyValue["def"] = "456";
a.filters.push(keyValue);
var b = a; // created another object array & initialized it with "a" array
var keyValue1 = {};
// pushed 1 value in "b" array
keyValue1["ghi"] = "789";
b.filters.push(keyValue1);
console.log(a);
console.log(b);

这将为 a 和 b 打印相同的值。
如何将值插入第二个数组而不更新第一个数组?

最佳答案

分配例如var b = a for a 对象创建一个对象“b”,该对象通常引用(就像指针一样)“a”指向的相同位置。你可能会发现这个link有帮助。

但是,您可以使用 slice 方法创建/克隆新数组。 var b = a.slice()

关于javascript - 如何更新一个 Javascript 对象数组而不更新另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26601753/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com