合并更新键的对象

问题描述 投票:0回答:1

例如,我有两个对象

const obj1 = {
a: [{asd1: 1}, {asd2: 2}, {asd3: 3}]
}

const obj2 = {
a: [{asd4: 4}],
b: [{a: "asd"}, {b: "asd"}]
}

我必须合并两个具有这样结果的对象

obj3 = {
a: [{asd1: 1}, {asd2: 2}, {asd3: 3}, {asd4: 4}]
b: [{a: "asd"}, {b: "asd"}]
}

实现这一目标最有效的方法是什么?

javascript object merge javascript-objects data-manipulation
1个回答
0
投票

给你一个参考,但不够优雅,等看别人回答

const obj1 = {
a: [{asd1: 1}, {asd2: 2}, {asd3: 3}]
}

const obj2 = {
a: [{asd4: 4}],
b: [{a: "asd"}, {b: "asd"}]
}

let k1 = Object.keys(obj1)
let k2 = Object.keys(obj2)
let k3 = new Set(k1.concat(k2))

let obj3 = {}
for(k of k3){
  let v1 = obj1[k] || []
  let v2 = obj2[k] || []
  obj3[k] = v1.concat(v2)
}
console.log(obj3)

© www.soinside.com 2019 - 2024. All rights reserved.