首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Angular中收集列表中的相同项目

如何在Angular中收集列表中的相同项目
EN

Stack Overflow用户
提问于 2021-07-26 12:34:09
回答 1查看 47关注 0票数 0

我有一个这样的列表:

我想用collect same items将这个列表收集到另一个列表中。

我想要像下面这样的新列表结果

代码语言:javascript
复制
    { mold: "T1164021", panchiNumber: 30 }
    { mold: "T2034101", panchiNumber: 8 }
    { mold: "T3726101", panchiNumber: 8 }
    { mold: "T3049021", panchiNumber: 4 }
    { mold: "T1024031", panchiNumber: 36 }
    { mold: "T3099051", panchiNumber: 28 }

谁能告诉我我应该怎么做才能得到这样一个新的名单?

感谢您阅读我的帖子!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-26 13:10:19

尝试使用array.reduce方法。

代码语言:javascript
复制
const parentArr = [
    { mold: 'T1164021', panchiNumber: 12},
    { mold: 'T1164021', panchiNumber: 12},
    { mold: 'T1164021', panchiNumber: 6},
    { mold: 'T2034101', panchiNumber: 8},
    { mold: 'T3726101', panchiNumber: 8},
    { mold: 'T3049021', panchiNumber: 4},
    { mold: 'T1024031', panchiNumber: 12},
    { mold: 'T1024031', panchiNumber: 12},
    { mold: 'T1024031', panchiNumber: 12},
    { mold: 'T3099051', panchiNumber: 4},
    { mold: 'T3099051', panchiNumber: 12},
    { mold: 'T3099051', panchiNumber: 12},
]
const newArr = parentArr.reduce((acc, curr) => {
    const node = acc.find((item) => item.mold === curr.mold);
    if (node) {
        node.panchiNumber += curr.panchiNumber;
    } else {
        acc.push(curr);
    }
    return acc;
}, []);
console.log(newArr)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68524543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档