javascript - JSON 数组联合

标签 javascript arrays node.js json

我有 2 个 JSON 数组,如下所示 数组1:

[
    { id : 1, b: 1},
    { id : 2, b: 2},
    { id : 3, b: 3},
]

数组2:

[
    { id : 1, c: 1},
    { id : 3, c: 3},
    { id : 4, c: 4}
]

使用 NodeJS 代码,我需要将两者结合起来,如下所示。

联盟:

[
    { id : 1, b: 1, c:1},
    { id : 2, b: 2},
    { id : 3, b: 3, c:3},
    { id : 4, c: 4}
]

有人可以提供最好的帮助吗?

最佳答案

您可以简单地连接两个数组,然后使用 Array.reduce对元素进行分组:

let a1 = [ { id : 1, b: 1}, { id : 2, b: 2}, { id : 3, b: 3} ]
let a2 = [ { id : 1, c: 1}, { id : 3, c: 3}, { id : 4, c: 4} ]

let result = [...a1, ...a2].reduce((acc,cur) => {
  acc[cur.id] = {...acc[cur.id] || {}, ...cur}
  return acc
}, {})

console.log(Object.values(result))

关于javascript - JSON 数组联合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56464402/

相关文章:

c++ - Cin for array 导致错误

javascript - 每行填充二维数组

javascript - NodeJS 加密和 jsSHA 的 SHA-1 结果不同

javascript - 使用 jquery 的二维 Canvas

javascript - 使用javascript获取div中的span元素

javascript - 工具提示触发事件名称列表

arrays - 如何绘制数组的实部和虚部?

node.js - Flutter Socket io 几秒钟后断开连接

node.js - NodeJs 和 Express 上的 HTTPs 端口错误,为什么?用头撞墙

javascript - 如何在第二个ajax调用之外获取值