合并对象并在JavaScript中求和一个属性
假设我们有两个对象数组,其中包含有关公司某些产品的信息-
const first = [
{
id: "57e7a1cd6a3f3669dc03db58",
quantity:3
},
{
id: "57e77b06e0566d496b51fed5",
quantity:3
},
{
id: "57e7a1cd6a3f3669dc03db58",
quantity:3
},
{
id: "57e77b06e0566d496b51fed5",
quantity:3
}
];
const second = [
{
id: "57e7a1cd6a3f3669dc03db58",
quantity:6
},
{
id: "57e77b06e0566d496b51fed5",
quantity:6
}
];现在,我们需要编写一个合并两个数组的函数,以使具有相同ID的对象不会出现重复的外观,此外,对象重复ID的数量属性将加在一起。
因此,让我们为该函数编写代码-
示例
const first = [
{
id: "57e7a1cd6a3f3669dc03db58",
quantity:3
},
{
id: "57e77b06e0566d496b51fed5",
quantity:3
},
{
id: "57e7a1cd6a3f3669dc03db58",
quantity:3
},
{
id: "57e77b06e0566d496b51fed5",
quantity:3
}
];
const second = [
{
id: "57e7a1cd6a3f3669dc03db58",
quantity:6
},
{
id: "57e77b06e0566d496b51fed5",
quantity:6
}
];
const mergeArray = (first, second) => {
return [...first, ...second].reduce((acc, val, i, arr) => {
const { id, quantity } = val;
const ind = acc.findIndex(el => el.id === id);
if(ind !== -1){
acc[ind].quantity += quantity;
}else{
acc.push({
id,
quantity
});
}
return acc;
}, []);
}
console.log(mergeArray(first, second));输出结果
控制台中的输出将为-
[
{ id: '57e7a1cd6a3f3669dc03db58', quantity: 12 },
{ id: '57e77b06e0566d496b51fed5', quantity: 12 }
]热门推荐
10 给老师祝福语简短元旦
11 送离职同事简短祝福语
12 简短创意祝福语有什么
13 别人怀孕的简短祝福语
14 双节祝福语简短英文
15 双十一祝福语大全简短
16 所有的新年祝福语简短
17 离别祝福语简短送同事
18 进驻新居的祝福语简短