问题描述
我有一个包含可迭代项的对象(键只是日期字符串)。其中一些对象具有多个项目。
我想展平每个对象,以便只保留一个尺寸的对象。
基本上,我希望data
看起来像expected
:
const data = {
//this datestring only has one item
"1598989834745": {
"219319571 ": {
applicantCode: "goc2gp",carrera: "Trabajo Social",code: "219319571 "
}
},//this one has two items
"1598990166911": {
"215576855": {
applicantCode: "8e11532",carrera: "Médico Cirujano y Partero",code: "215576855"
},"217831836": {
applicantCode: "ybg14pd",code: "217831836"
}
}
};
const expected = [
{
applicantCode: "goc2gp",code: "219319571 "
},{
applicantCode: "8e11532",code: "215576855"
},{
applicantCode: "ybg14pd",code: "217831836"
}
];
我尝试映射Object.keys
:
function objToArr(obj: object): object[] {
return Object.keys(obj).map(key => obj[key]);
}
但是当我多次(覆盖两个维度)执行此操作时,它返回以下内容:
[
{
'219319571 ': {
applicantCode: 'goc2gp',carrera: 'Trabajo Social',code: '219319571 '
}
},{
'215576855': {
applicantCode: '8e11532',carrera: 'Médico Cirujano y Partero',code: '215576855'
},'217831836': {
applicantCode: 'ybg14pd',code: '217831836'
}
}
]
```
解决方法
您可以打几个Object.values电话到达那里。遵循以下原则:
const expected = Object.values(data).map(v => Object.values(v)).flat()