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

如何使用Javascript/Node.js合并两个同关联值数组为统一JSON

实现方案

这里提供两种常用方案,可根据你的实际场景选择:

方案1:高性能一一对应合并(适用于两个数组name完全匹配的场景,时间复杂度O(n))

先将第二个数组转为以name为键的映射结构,查找效率更高,避免嵌套循环:

// 假设第一个数组为arr1,第二个数组为arr2
// 先构造name到anzahl的映射
const countMap = new Map(arr2.map(item => [item.name, item.anzahl]))
// 遍历第一个数组合并属性
const mergedArray = arr1.map(item => ({
  ...item,
  anzahl: countMap.get(item.name)
}))

方案2:全量双向合并(适用于两个数组存在对方没有的name的场景,会保留所有name条目)

如果两个数组可能存在一方有某个name、另一方没有的情况,可以先收集所有name值再统一合并:

// 收集两个数组所有的name值去重
const allNameSet = new Set([...arr1.map(i => i.name), ...arr2.map(i => i.name)])
// 遍历所有name合并两个数组的属性
const mergedArray = Array.from(allNameSet).map(name => {
  const arr1Item = arr1.find(i => i.name === name) ?? {}
  const arr2Item = arr2.find(i => i.name === name) ?? {}
  return { ...arr1Item, ...arr2Item }
})

你给出的示例场景直接用方案1即可,得到的结果完全符合你给出的预期结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 13:54:05