繁体   English   中英

如何对 object 中的值进行分组?

[英]How to grouped values in object?

我写了一个 function,它允许你在 object 中对值进行分组,但它不能正常工作

这是我的变化

const response = Object.values(
      footerMenu.reduce((acc, key) => {
        const { databaseId, parentDatabaseId } = key;
        acc[parentDatabaseId] = (acc[parentDatabaseId] || []).concat(key);
        return acc;
      }, {})
    );

示例数据:

[{parentDatabase: 0, databaseId: 5728}, {parentDatabseId: 5728, databaseId: 5762}....{parentDatabse: 0, databaseId: 4532}, {parentDatabaseId: 4532, databaseId: 3221} ...]

如何对项目进行分组,以便父数据库 Id == 0 具有与其相关的自己的项目

您必须对数组执行简单的操作——按 parentDatabaseId 对项目进行分组

通常的方法是通过正确的回调 function 调用 array.reduce() 方法:

 let array=[{parentDatabase: 0, databaseId: 5728}, {parentDatabase: 5728, databaseId: 5762},{parentDatabase: 0, databaseId: 4532}, {parentDatabase: 4532, databaseId: 3221} ] const groupByDbId = array.reduce((group, item) => { const { parentDatabase } = item; group[parentDatabase] = group[parentDatabase]?? []; group[parentDatabase].push(item); return group; }, {}); console.log(JSON.stringify(groupByDbId, null, 2));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM