Javascript 合并对象的对象
我想合并两个包含对象本身的对象。 像这样:Javascript 合并对象的对象,javascript,object,merge,Javascript,Object,Merge,我想合并两个包含对象本身的对象。 像这样: let selections = { 123: { abc: {name: 'abc'}, def: {name: 'def'} }, 456: { ghi: {name: 'ghi'}, jkl: {name: 'jkl'} } }; let flatSelections = Object.keys(selections).reduce((r, k) =
let selections = {
123: {
abc: {name: 'abc'},
def: {name: 'def'}
},
456: {
ghi: {name: 'ghi'},
jkl: {name: 'jkl'}
}
};
let flatSelections = Object.keys(selections).reduce((r, k) => {
return selections[k];
}, {});
console.log(flatSelections);
/* expected data
flatSelections = {
abc: {name: 'abc'},
def: {name: 'def'},
ghi: {name: 'ghi'},
jkl: {name: 'jkl'}
};
*/
但我只有选择['456']作为输出。
您可以在
对象.values()上应用reduce
let选择={
123: {
abc:{name:'abc'},
定义:{name:'def'}
},
456: {
ghi:{name:'ghi'},
jkl:{name:'jkl'}
}
};
const res=对象。值(选择)。减少((a,c)=>{
返回{…a,…c};
}, {});
控制台日志(res)代码>
.as控制台包装{min height:100%!important;top:0;}
您需要从reduce实际返回修改后的累加器。使用对象。分配或扩展语法将累加器即r
与项目即k
也可以使用Object.values
,因为您只关心值。
let选择={
123: {
abc:{name:'abc'},
定义:{name:'def'}
},
456: {
ghi:{name:'ghi'},
jkl:{name:'jkl'}
}
};
让flatSelections=Object.Value(selections).reduce((r,k)=>{
返回对象。赋值(r,k)
}, {});
控制台日志(flatSelections)代码>使用Object.assign()
let选择={
123: {
abc:{name:'abc'},
定义:{name:'def'}
},
456: {
ghi:{name:'ghi'},
jkl:{name:'jkl'}
}
};
让输出=Object.assign(选项[“123”]、选项[“456”])
console.log(输出)
Hi Shubham!非常感谢你。清楚,简单。谢谢你的回答。我知道这种可能性。但它在不知道对象键(123或456)的情况下就要这么做了,它可能是任何东西。