You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按league_id分组重组多维数组,聚合用户信息?

按league_id分组数组并聚合用户信息的实现方法

实现思路

用一个临时对象做中间映射,以league_id为键聚合相同联赛的数据,最后把对象转换为目标数组即可。

代码实现(JavaScript)

const originalArray = [
    {
        "league_id": 2,
        "league_name": "BBBB",
        "league_image": "https://d2ayu7u0r0spqb.cloudfront.net/dev/league-images/1722361078.png",
        "order_number": 1,
        "member_username": "A"
    },
    {
        "league_id": 2,
        "league_name": "BBBB",
        "league_image": "https://d2ayu7u0r0spqb.cloudfront.net/dev/league-images/1722361078.png",
        "order_number": 2,
        "member_username": "B"
    },
    {
        "league_id": 1,
        "league_name": "AAAA",
        "league_image": "https://d2ayu7u0r0spqb.cloudfront.net/dev/league-images/1724177635.png",
        "order_number": 1,
        "member_username": "C"
    },
    {
        "league_id": 1,
        "league_name": "AAAA",
        "league_image": "https://d2ayu7u0r0spqb.cloudfront.net/dev/league-images/1724177635.png",
        "order_number": 2,
        "member_username": "D"
    }
];

// 创建临时映射对象
const leagueMap = {};

originalArray.forEach(item => {
    const { league_id, league_name, league_image, order_number, member_username } = item;
    // 如果当前联赛不在映射中,初始化结构
    if (!leagueMap[league_id]) {
        leagueMap[league_id] = {
            league_id,
            league_name,
            league_image,
            users: []
        };
    }
    // 将用户信息推入对应联赛的users数组
    leagueMap[league_id].users.push({
        order_number,
        member_username
    });
});

// 将映射对象的值转换为数组,得到目标结果
const resultArray = Object.values(leagueMap);

console.log(resultArray);

代码说明

  • 临时对象leagueMap的键是league_id,确保每个联赛只会被初始化一次
  • 遍历原数组时解构字段,避免重复访问属性
  • 最后用Object.values()提取对象的所有值为数组,即可得到你需要的输出格式

内容的提问来源于stack exchange,提问作者Raman Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 09:02:28