如何解决使用具有嵌套对象的对象展平数组
许多与此类似的问题,例如 here 和 here,但由于答案中的代码非常简洁,因此我很难根据自己的需要进行修改。
[
{
id: 1,someProp: "value of some prop",MetaData: {
MetaId: 123
uuid: "2348_4354_dfgg_r343"
}
},{
id: 2,someProp: "value of some prop again",MetaData: {
MetaId: 321
uuid: "9897_3543_ergl_j435"
}
}
]
我需要它看起来像:
[
{
id: 1,MetaId: 123
uuid: "2348_4354_dfgg_r343"
},MetaId: 321
uuid: "9897_3543_ergl_j435"
}
]
因此嵌套的 MetaData
对象的属性必须成为数组中每个项目中父对象的一部分。到目前为止,我已经尝试过:
console.log(Object.assign(
{},...function _flatten(o) {
return [].concat(...Object.keys(o)
.map(k =>
typeof o[k] === 'object' ?
_flatten(o[k]) :
({[k]: o[k]})
)
);
}(events)
));
然而,这只给了我扁平化的对象,但我的数组目前有两个。
解决方法
您可以展开嵌套对象。
const
data = [{ id: 1,someProp: "value of some prop",metaData: { metaId: 123,uuid: "2348_4354_dfgg_r343" } },{ id: 2,someProp: "value of some prop again",metaData: { metaId: 321,uuid: "9897_3543_ergl_j435" } }],result = data.map(({ metaData,...o }) => ({ ...o,...metaData }));
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。