Mak*_*ahy 1 javascript properties add object
我正在尝试将一个对象的属性添加到另一个对象中,而无需覆盖原始属性。
//Start
obj1 = {a: 1, b: 2, c: 3}
obj2 = {b: 4, c: 3, d: 4}
//Goal
obj1 = {a: 1, b: 2, c: 3, d: 4}
Run Code Online (Sandbox Code Playgroud)
我已经尝试了以下,但我看不出它:
function mergeProp(obj1, obj2) { //obj1 is destination, obj2 is source
for (var a in obj2) {
if (obj2.hasOwnProperty(a) && !obj1.hasOwnProperty(a)) {
obj1[a] = obj2[a];
}
}
return obj1 //returns {a: 1, b: 4, c: 3, d: 4} should have {...b: 2...}
}
Run Code Online (Sandbox Code Playgroud)
这将返回被覆盖的属性。我尝试了这种变体,但似乎总是被覆盖,或者缺少obj1 的属性
我也试过这个代码:
function extend(obj1, obj2) {
let obj = {};
for (let a in obj2) {
obj[a] = obj2[a];
};
for (let b in obj1){
obj[b] = obj1[b];
};
return obj; //Returns {b: 4, c: 3, d: 4}
}
Run Code Online (Sandbox Code Playgroud)
该对象甚至没有 obj1 的任何属性。
我知道“...对象”,但我正在练习的课程不希望我使用它。然而,我设法让它与它一起工作。
提前致谢!
ES2015:
const obj3 = Object.assign({}, obj2, obj1);
Run Code Online (Sandbox Code Playgroud)
ES2018:
const obj3 = {...obj2, ...obj1};
Run Code Online (Sandbox Code Playgroud)