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

如何对对象数组按id进行groupBy,将分组结果拼接为单个数组?

实现方案(JavaScript版本)

直接通过Array.prototype.reduce完成分组,逻辑简洁高效,支持通用指定分组key:

function groupByKey(arr, groupKey) {
  return Object.values(
    arr.reduce((groupMap, currentItem) => {
      const keyValue = currentItem[groupKey]
      // 若当前key不存在分组则初始化
      if (!groupMap[keyValue]) {
        groupMap[keyValue] = []
      }
      groupMap[keyValue].push(currentItem)
      return groupMap
    }, {})
  )
}

调用测试

针对你给出的示例参数调用即可得到预期结果:

const payload = [
  { id: 1, name: 'a' },
  { id: 1, name: 'b' },
  { id: 1, name: 'c' },
  { id: 2, name: 'b' },
  { id: 2, name: 'c' }
]
// 指定按id分组
const result = groupByKey(payload, 'id')
console.log(result)

逻辑说明

  • 第一步用reduce遍历原数组,生成以分组key值为属性名、对应同组元素数组为属性值的临时对象
  • 第二步用Object.values提取临时对象所有属性值,直接得到由各分组子数组组成的最终结果
  • 方法可通用,修改第二个入参即可按其他任意字段分组

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 15:15:04