【发布时间】:2021-07-04 10:44:52
【问题描述】:
许多与此类似的问题,例如 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,
someProp: "value of some prop",
metaId: 123
uuid: "2348_4354_dfgg_r343"
},
{
id: 2,
someProp: "value of some prop again",
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)
));
但是,这只给了我扁平对象,但我的数组目前有两个。
【问题讨论】:
标签: javascript arrays typescript javascript-objects