在Node.js中合并两obj对象 有几种方法
时间: 2024-10-19 17:05:59 浏览: 19
在Node.js中,合并两个JavaScript对象(obj)主要有以下几种常见方法:
1. **浅复制** (Shallow Copy):
```javascript
const obj1 = { a: 1, b: 2 };
const obj2 = { c: 3, d: 4 };
const mergedObj = Object.assign({}, obj1, obj2);
// mergedObj: { a: 1, b: 2, c: 3, d: 4 }
```
2. **深复制** (Deep Copy, 如果对象中有嵌套的对象或数组):
- 使用`lodash`库的`_.merge`方法:
```javascript
const _ = require('lodash');
const mergedObj = _.merge({}, obj1, obj2);
```
- 或者递归实现深拷贝:
```javascript
function deepMerge(target, source) {
for (let key in source) {
if (source.hasOwnProperty(key)) {
if (_.isObject(source[key]) && !_.isPlainObject(source[key])) {
target[key] = deepMerge({}, source[key]);
} else {
target[key] = source[key];
}
}
}
return target;
}
const mergedObj = deepMerge({}, obj1, obj2);
```
3. **合并对象属性而不覆盖原有值**:
```javascript
const mergedObj = {...obj1, ...obj2};
```
这种方法会将`obj2`中的属性添加到`obj1`中,如果键名冲突,则保留`obj1`的原始值。
阅读全文