You need to enable JavaScript to run this app. JavaScript如何拼接对象数组中重复id对应的name属性值
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript如何拼接对象数组中重复id对应的name属性值

对象数组按id归并去重、拼接同id name值的实现

核心实现逻辑

  • 借助原生JS的reduce方法配合临时映射表完成归并,无需引入第三方库
  • 映射表以数组元素的id为键,存储已经完成归并的条目对象
  • 遍历原数组时做分支判断:
    • 若id首次出现,直接将条目存入映射表
    • 若id已存在,将当前条目的name值拼接到映射表对应条目的name后,以逗号分隔
  • 遍历完成后,提取映射表中所有值,即为最终的归并结果数组

完整可运行代码

const x = [
   {id: 1, name: 'green'},
   {id: 2, name: 'red'},
   {id: 1, name: 'blue'}
]

const mergedArray = Object.values(
  x.reduce((map, item) => {
    const idKey = item.id
    if (map[idKey]) {
      map[idKey].name += `, ${item.name}`
    } else {
      map[idKey] = { ...item }
    }
    return map
  }, {})
)

输出验证

执行上述代码后,mergedArray的输出完全匹配预期结构:

[
   {id: 1, name: 'green, blue'},
   {id: 2, name: 'red'}
]

补充说明:如果后续需要归并其他同id的属性值,只需要在id已存在的分支中,追加对应属性的拼接/累加逻辑即可,整体结构不需要改动。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.31 01:24:05