我有两个对象a和b。每个对象都有一个数组结果[],其中进一步包含多个对象。
我想将两个对象的结果[]数组合并到第三个对象c中。
我尝试过var c = Object.assign(a,b)
,但没有得到结果。
请参考以下示例。
a = {results[{"boys": 50, "girls": 20, "red":10},{boys": 40, "girls": 10, "red":50},{boys": 30, "girls": 10, "red":50}]}
b = {results[{boys": 20, "girls": 30},{boys": 50, "girls": 20},{boys": 70, "girls": 30}]}
我正在寻找如下结果
c = {results[{"boys": 50, "girls": 20, "red":10},{boys": 40, "girls": 10, "red":50},{boys": 30, "girls": 10, "red":50},{boys": 20, "girls": 30},{boys": 50, "girls": 20},{boys": 70, "girls": 30}]}
请帮助。预先感谢
答案 0 :(得分:-1)
在合并两个数组之前,您需要担心的第一件事是确保语法正确。
:
键后面加一个冒号("results"
)。"boys"
键的开头报价。解决了这些问题后,合并就像使用传播语法在"results"
对象中创建新的c
数组一样简单。
不幸的是,ES6中不存在深度合并,因此以下操作无效:
const c = { ...a, ...b }
相反,您将需要合并对象的"results"
。
const a = {
"results": [
{ "boys": 50, "girls": 20, "red": 10 },
{ "boys": 40, "girls": 10, "red": 50 },
{ "boys": 30, "girls": 10, "red": 50 }
]
}
const b = {
"results": [
{ "boys": 20, "girls": 30 },
{ "boys": 50, "girls": 20 },
{ "boys": 70, "girls": 30 }
]
}
const c = { "results": [ ...a.results, ...b.results ] }
console.log(c);
.as-console-wrapper { top: 0; max-height: 100% !important; }