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

如何用lodash+TypeScript按main_role_group_id分组合并company_name数组

你可以结合lodash的_.groupBy和_.map方法实现需求,完整实现代码如下:

const _ = require('lodash');

// 原始输入数组
const originArr = [
  { "main_role_group_id": 5, "company_name": "Fitzsimons PTY LTD" },
  { "main_role_group_id": 1, "company_name": "APF Brisbane Pty Ltd" },
  { "main_role_group_id": 5, "company_name": "Five Islands Secondary College" },
  { "main_role_group_id": 1, "company_name": "General Excavators Pty Ltd" },
  { "main_role_group_id": 7, "company_name": "Chubb Security - SA Office" },
  { "main_role_group_id": 7, "company_name": "Stay Kool Airconditioning & Electrical Services" }
];

// 核心实现
const result = _(originArr)
  // 按main_role_group_id分组
  .groupBy('main_role_group_id')
  // 遍历分组转换为目标结构
  .map((groupItems, groupId) => ({
    main_role_group_id: Number(groupId),
    company: groupItems.map(item => ({ company_name: item.company_name }))
  }))
  // 执行链式调用获取结果
  .value();

逻辑说明:

  • 第一步调用_.groupBy,以main_role_group_id为分组键,将原始数组中同id的条目归为同一组,得到键为分组id、值为同组元素数组的对象
  • 第二步调用_.map遍历分组结果,将每组转换为目标结构:因为groupBy返回的对象键默认为字符串类型,此处加Number()转换为数字和原始类型保持一致;同时遍历同组元素提取company_name字段组成company数组
  • 最后调用.value()触发lodash链式调用的执行,得到符合要求的输出数组

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 20:57:03