【发布时间】:2021-05-17 18:02:01
【问题描述】:
我有下面的模型,当一个存在时,我需要按角色过滤主数组和项子数组。
this.model = [
{label: 'Home', icon: 'pi pi-fw pi-home', routerLink: ['/main']},
{label: 'Apps', icon:'pi pi pi-fw pi-desktop', routerLink: ['/main/admin'], role: 's_user',
items: [
{label: 'Steve', icon: 'pi pi-fw pi-desktop', url: ['ExtURLPlaceholder'], role: 's_user' },
{label: 'Roger', icon: 'pi pi-fw pi-desktop', url: ['ExtURLPlaceholder'] },
]},
{label: 'Admin', icon:'pi pi pi-fw pi-list', routerLink: ['/main/admin'], role: 'y_admin',
items: [
{label: 'Susbsystems', icon: 'pi pi-fw pi-id-card', routerLink: ['/main/admin/subsystems']},
{label: 'Logs', icon: 'pi pi-fw pi-bookmark', routerLink: ['/uikit/floatlabel'], role: 's_user' },
]},
];
我可以像这样过滤顶级数组:
this.model = this.model.filter((item)=>{
if(item.role){
const token = this.oauthService.getAccessToken();
return this.jwtService.isAuthorized(token, [item.role])
}
return true
})
我怎样才能以同样的方式过滤 items 子数组?
如果定义了角色,所需的结果将返回符合角色要求的所有项目和子项目,如果定义了角色,则过滤掉不符合角色要求的项目和子项目。
【问题讨论】:
-
你不能过滤嵌套数组,因为你需要改变孩子或者只过滤父母。请添加想要的结果。
标签: javascript json angular typescript