我有这个模特:
export class Category {
id: number;
label: String;
subCategories: SubCategory[];
}
export class SubCategory {
id: number;
label: String;
}
例如,我拉这个数组:
data =
[
{
'id': 5,
'label': 'Audio',
'subCategories': [{'id': 9, 'label': 'Chinese'}, {'id': 10, 'label': 'English'}]
},
{
'id': 6,
'label': 'Video',
'subCategories': [{'id': 11, 'label': 'Chinese'}, {'id': 12, 'label': 'English'}]
}
];
如何提取以下数组:["Chinese", "English", "Chinese", "English"]
,即我想从原始数组中的每个Category中提取所有SubCategory[]
,抓住它们的label属性,然后有序地将它们展平为数组。
函数flat
返回错误:
类型'SubCategory []'不存在属性'flat'。
答案 0 :(得分:1)
您不需要平面函数。您可以使用本机数组方法。
data.reduce((acc: any, cur: any) => {
return acc.concat(cur.subCategories.map((v: any) => v.label));
}, []);