在JavaScript中,可以使用Array.prototype.reduce()
方法来合并包含同一键值但不同值的两个对象数组,并将新对象推入数组。
下面是一个示例代码:
const arr1 = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
];
const arr2 = [
{ id: 1, age: 25 },
{ id: 2, age: 30 },
];
const mergedArray = arr1.reduce((acc, obj1) => {
const matchingObj = arr2.find(obj2 => obj2.id === obj1.id);
if (matchingObj) {
const mergedObj = { ...obj1, ...matchingObj };
acc.push(mergedObj);
}
return acc;
}, []);
console.log(mergedArray);
输出结果为:
[
{ id: 1, name: 'Alice', age: 25 },
{ id: 2, name: 'Bob', age: 30 },
]
在这个示例中,我们使用reduce()
方法遍历arr1
数组,并通过find()
方法在arr2
数组中找到具有相同id
的对象。如果找到匹配的对象,我们使用对象展开语法{ ...obj1, ...matchingObj }
将两个对象合并为一个新对象,并将其推入acc
数组中。最后,返回合并后的数组。
需要注意的是,这个示例只合并了具有相同id
的对象,如果你需要根据其他键值进行合并,只需修改find()
方法的条件即可。
关于云计算领域的相关知识,腾讯云提供了多个产品和服务,例如:
以上只是腾讯云提供的一些云计算相关产品,更多产品和服务可以在腾讯云官网上查看。
领取专属 10元无门槛券
手把手带您无忧上云