gpt4 book ai didi

javascript - 如何使用 Object.assign() 函数复制/覆盖对象?

转载 作者:行者123 更新时间:2023-11-29 17:43:28 26 4
gpt4 key购买 nike

如何使用 Object.assign() 完全复制/覆盖一个对象?如果有另一种方法,将不胜感激。 :)目的是将现有对象更新为其新值。

下面是我的代码片段,预期结果应该与 object2 的值相同。

Expected result: { a: 8, b: 7 }

const object1 = {
a: 1,
b: 2,
c: {
d: 3
}
};

const object2 = {
a: 8,
b: 7
};

Object.assign(object1, object2);

console.log(object1);

最佳答案

为了保持相同的对象引用,您可以提前删除所有属性,然后使用 Object.assign 分配想要的属性.

const object1 = { a: 1, b: 2, c: { d: 3 } };
const object2 = { a: 8, b: 7 };

Object.assign(
Object.keys(object1).reduce((o, k) => (Reflect.deleteProperty(o, k), o), object1),
object2
);

console.log(object1);

浏览器

var object1 = { a: 1, b: 2, c: { d: 3 } },
object2 = { a: 8, b: 7 };

Object.keys(object2).reduce(
function (object, key) {
object[key] = object2[key];
return object;
},
Object.keys(object1).reduce(function (object, key) {
delete object[key];
return object;
}, object1)
);

console.log(object1);

关于javascript - 如何使用 Object.assign() 函数复制/覆盖对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51607071/

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