推荐答案
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 值。