gpt4 book ai didi

javascript - 给定两个对象,如何将值从 obj2 复制到 obj1 而不覆盖 obj1 中的相似键?

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

我有两个对象 obj1 和 obj2。我正在尝试将属性从 obj2 添加到 obj1,而不覆盖类似的属性

这是我到目前为止的代码:

var obj1 = {
a: 1,
b: 2
};
var obj2 = {
b: 4,
c: 3
};

function extend(objOne, objTwo) {
objOne = Object.assign(objOne,objTwo)
return objOne
}


extend(obj1, obj2)

console.log('obj1:', obj1)
console.log('obj2:', obj2)

Here's the result I'm having :
// obj1: { a: 1, b: 4, c: 3 }
// obj2: { b: 4, c: 3 }

I'm almost there, but as you can see the `b` value in obj1
is being overwritten by the `b`value from obj2

my desired result would be :
// obj1: { a: 1, b: 2, c: 3 }
// obj2: { b: 4, c: 3 }

I tried using the spread operator but with no success

最佳答案

您可以使用空对象并切换 Object.assign 中对象的顺序.

然后使用新对象对 obj1 进行赋值。

var obj1 = { a: 1, b: 2 },
obj2 = { b: 4, c: 3 };

Object.assign(obj1, Object.assign({}, obj2, obj1));
console.log(obj1); // { a: 1, b: 2, c: 3 }
console.log(obj2); // { b: 4, c: 3 }

关于javascript - 给定两个对象,如何将值从 obj2 复制到 obj1 而不覆盖 obj1 中的相似键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42045046/

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