将一组对象合并为一个OBJECT
我正在努力寻找一种将一组对象组合成一个对象的方法。到目前为止,我遇到的所有解决方案都会产生一个数组作为结果,但我需要一个对象。下面是一个例子:
[
{
'1112225544': '1',
'3258458756': '9',
'3654125412': '5',
},
{
'2229993827': '0',
'9827719902': '1',
'0000000000': '2',
'1112225544': '3',
},
...
]
数组内可以有很多对象。我想压平它们并将其作为输出:
{
'3258458756': '9',
'3654125412': '5',
'2229993827': '0',
'9827719902': '1',
'0000000000': '2',
'1112225544': '3'
}
请注意,重复的键会被最后一个数组具有的任何值覆盖。到目前为止,我看到的解决方案种类繁多,对我来说不太适用。
回答
let data = [
{
'1112225544': '1',
'3258458756': '9',
'3654125412': '5',
},
{
'2229993827': '0',
'9827719902': '1',
'0000000000': '2',
'1112225544': '3',
},
];
let result = {};
data.forEach(x=>{
Object.entries(x).forEach(([k,v])=>result[k]=v)
})
console.log(result)
或者
let data = [
{
'1112225544': '1',
'3258458756': '9',
'3654125412': '5',
},
{
'2229993827': '0',
'9827719902': '1',
'0000000000': '2',
'1112225544': '3',
},
];
let result = {};
data.forEach(x=>{
result = {...result, ...x}
})
console.log(result)