js 把两个对象数组有相同字段的对象合并
时间: 2024-09-19 08:12:43 浏览: 43
在JavaScript中,如果你想将两个对象数组合并,并保留其中相同的对象,可以使用`Array.prototype.reduce()`函数配合对象字面量或者`Object.assign()`方法。这里有一个示例:
```javascript
function mergeObjects(arr1, arr2) {
// 使用reduce和Object.assign来合并对象
return arr1.reduce((acc, obj) => {
acc[obj.commonField] = Object.assign({}, obj, arr2.find(item => item.commonField === obj.commonField));
return acc;
}, {});
}
// 假设你有两个对象数组,每个对象都有一个共同字段"field"
let array1 = [{ field: 'value1', otherField: 'extra1' }, { field: 'value2', otherField: 'extra2' }];
let array2 = [{ field: 'value1', anotherField: 'otherExtra1' }, { field: 'value3', anotherField: 'otherExtra2' }];
let mergedArray = mergeObjects(array1, array2);
console.log(mergedArray);
```
在这个例子中,我们通过`commonField`将两个数组中的对象进行匹配。如果找到匹配项,就使用`Object.assign()`合并它们。如果没有找到,则从第二个数组中添加新的对象。
阅读全文