gpt4 book ai didi

javascript - 如何使用 lodash 合并两个数组并对重复对象的值求和

转载 作者:行者123 更新时间:2023-11-30 07:49:56 33 4
gpt4 key购买 nike

有两个数组:

[
{"id": "5c5030b9a1ccb11fe8c321f4", "quantity": 1},
{"id": "344430b94t4t34rwefewfdff", "quantity": 5},
{"id": "342343343t4t34rwefewfd53", "quantity": 3}
]

[
{"id": "5c5030b9a1ccb11fe8c321f4", "quantity": 2},
{"id": "344430b94t4t34rwefewfdff", "quantity": 1}
]

如何将它们合并为一个求和量?

[
{"id": "5c5030b9a1ccb11fe8c321f4", "quantity": 3},
{"id": "344430b94t4t34rwefewfdff", "quantity": 6},
{"id": "342343343t4t34rwefewfd53", "quantity": 3}
]

有时其中一个可以为空

最佳答案

您可以使用纯 JavaScript 来完成。

使用Array.reduce()通过 id 制作一个中间字典并累积数量,然后将它变成一个数组 Object.values() :

const arr1 = [
{"id": "5c5030b9a1ccb11fe8c321f4", "quantity": 1},
{"id": "344430b94t4t34rwefewfdff", "quantity": 5},
{"id": "342343343t4t34rwefewfd53", "quantity": 3}
];
const arr2 = [
{"id": "5c5030b9a1ccb11fe8c321f4", "quantity": 2},
{"id": "344430b94t4t34rwefewfdff", "quantity": 1}
];

const result = Object.values([...arr1, ...arr2].reduce((acc, { id, quantity }) => {
acc[id] = { id, quantity: (acc[id] ? acc[id].quantity : 0) + quantity };
return acc;
}, {}));

console.log(result);

关于javascript - 如何使用 lodash 合并两个数组并对重复对象的值求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54884760/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com