推荐答案
function merge(obj1, obj2) { return { ...obj1, ...obj2 }; }
本题详细解读
1. 题目要求
实现一个函数 merge(obj1, obj2)
,合并两个对象。合并后的对象应包含 obj1
和 obj2
的所有属性。如果两个对象有相同的属性,obj2
的属性值应覆盖 obj1
的属性值。
2. 实现思路
- 使用 ES6 的扩展运算符
...
可以轻松地将两个对象的属性合并到一个新对象中。 - 扩展运算符会依次将
obj1
和obj2
的属性展开,并放入一个新的对象中。如果obj1
和obj2
有相同的属性,后展开的对象(即obj2
)的属性会覆盖前一个对象的属性。
3. 代码分析
{ ...obj1, ...obj2 }
:首先将obj1
的所有属性展开到一个新对象中,然后将obj2
的所有属性展开并覆盖obj1
中相同的属性。- 最终返回的新对象就是合并后的结果。
4. 示例
const obj1 = { a: 1, b: 2 }; const obj2 = { b: 3, c: 4 }; const mergedObj = merge(obj1, obj2); console.log(mergedObj); // 输出: { a: 1, b: 3, c: 4 }
在这个示例中,obj1
和 obj2
都有属性 b
,合并后 obj2
的 b
值覆盖了 obj1
的 b
值。