gpt4 book ai didi

javascript - 如何按类型为 bundle 的 itemId 总和数量和类型为 sale_order javascript 的 parentId 进行分组?

转载 作者:可可西里 更新时间:2023-11-01 10:45:34 25 4
gpt4 key购买 nike

请帮助我处理我的收藏,我想要相同 itemId 和类型 bundle 的总和,以及类型为 Sale_Order 的 parentId,就像我下面的收藏一样。

`let item = [{
id: '001',
name: 'A',
qty: 10,
type:'bundle'
},
{
id: '002',
name: 'B',
qty: 5,
parentId: '001'
type:'Sale_Order'
},
{
id: '002',
name: 'B',
qty: 4,
parentId: '001'
type:'Sale_Order'
},
{
id: '003',
name: 'C',
qty: 8,
parentId: '001'
type:'Sale_Order'
},
{
id: '001',
name: 'A',
qty: -5,
type:'bundle'
},
{
id: '002',
name: 'B',
qty: -5,
parentId: '001'
type:'Sale'
},
{
id: '002',
name: 'B',
qty: -4,
parentId: '001'
type:'Sale'
},
{
id: '003',
name: 'C',
qty: -8,
parentId: '001'
type:'Sale'
}
]`

我想要这样的收藏。您可以看到类型为 bundle sum qty 的相同 itemId 和另一个类型为 parenId 的项目 bundle itemId 类型仅为 Sale_Order。

 `let item = [{
id: '001',
name: 'A',
qty: 5,
type:'bundle'
},
{
id: '002',
name: 'B',
qty: 5,
parentId: '001'
type:'Sale_Order'
},
{
id: '002',
name: 'B',
qty: 4,
parentId: '001'
type:'Sale_Order'
},
{
id: '003',
name: 'C',
qty: 8,
parentId: '001'
type:'Sale_Order'
},`

最佳答案

您可以先检查具有 parentId 的对象,然后仅推送具有 'Sale_Order' 的类型。

然后检查是否存在具有相同 id 和相同 type 的项目,如果找到则更新 qty 或将实际对象的副本推送到结果集。

var items = [{ id: '001', name: 'A', qty: 10, type: 'bundle' }, { id: '002', name: 'B', qty: 5, parentId: '001', type: 'Sale_Order' }, { id: '002', name: 'B', qty: 4, parentId: '001', type: 'Sale_Order' }, { id: '003', name: 'C', qty: 8, parentId: '001', type: 'Sale_Order' }, { id: '001', name: 'A', qty: -5, type: 'bundle' }, { id: '002', name: 'B', qty: -5, parentId: '001', type: 'Sale' }, { id: '002', name: 'B', qty: -4, parentId: '001', type: 'Sale' }, { id: '003', name: 'C', qty: -8, parentId: '001', type: 'Sale' }],
result = items.reduce((r, o) => {
if (o.parentId) {
if (o.type === 'Sale_Order') {
r.push(o);
}
return r;
}
let item = r.find(({ id, type }) => o.id === id && o.type === type);
if (item) {
item.qty += o.qty;
} else {
r.push(Object.assign({}, o));
}
return r;
}, []);

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 如何按类型为 bundle 的 itemId 总和数量和类型为 sale_order javascript 的 parentId 进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52925952/

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