gpt4 book ai didi

javascript - 仅使用对该对象的引用替换数组中的对象

转载 作者:行者123 更新时间:2023-11-28 06:25:05 25 4
gpt4 key购买 nike

我在数组中引用了 JS 对象(例如 var arr = [{hello:"world"}]; var ref = arr[0])。我需要用新对象替换该对象。 (实际上,它是先前时间的对象备份,例如当用户单击“放弃更改”时)。现在,由于 JS 对象是通过引用传递的,所以我不能只执行 ref = angular.copy(backupObject) 。其问题如下所示。

控制台的简单输出演示了问题。

x = {hello:"world"}
> Object {hello: "world"}
y = x
> Object {hello: "world"}
y = {goodbye:"world"}
> Object {goodbye: "world"}
x
> Object {hello: "world"}

在这里您可以看到,将第二个变量设置为另一个对象实际上并没有更改第一个对象。它只是创造了一个新的。

有什么方法可以使用引用它的变量来替换数组中的原始对象吗?当然,显而易见的答案是只更改原始数组。但是,在我现在的代码中,如果我不必跟踪对象和位置,事情会简单得多。

我想我可以写一个这样的循环:

for(key in ref){
delete ref[key];
}
for(key in backupObj){
ref[key] = backupObj[key]
}

但我想知道是否有更快的方法。

最佳答案

您可以使用angular.copy像这样

angular.copy(backupObject, ref);

angular.copy(source, [destination]); If a destination is provided, all of its elements (for arrays) or properties (for objects) are deleted and then all elements/properties from the source are copied to it.

关于javascript - 仅使用对该对象的引用替换数组中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35194928/

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