【发布时间】:2019-08-01 11:52:12
【问题描述】:
我有一个对象数组,我正在根据属性名称“用户名”过滤它。
array = [{
"id": 1,
"username": "admin",
"roles": [{
"name": "Administrator"
},
{
"name": "agent"
}
]
},
{
"id": 2,
"username": "admin2",
"roles": [{
"name": "Administrator2"
},
{
"name": "agent2"
}
]
},
{
"id": 3,
"username": "admin3",
"roles": [{
"name": "Administrator3"
},
{
"name": "agent3"
}
]
}
]
而过滤功能是这样的
transform(array: any, valueToSearch: string): any[] {
return array.filter(e =>
e.username.toLowerCase().indexOf(valueToSearch.toLowerCase())
!== -1);
}
一切正常,但现在我想过滤对象中“角色”数组中的属性名称“名称”。例如,我想返回一个“roles”数组包含“name”= agent3 的对象,所以它应该返回在我的示例中位于最后的整个对象。我试过了
return agents.filter(e => e.roles.filter(ee =>
ee.valueToSearch.toLowerCase()) !== -1));
但是没有用。
这是 dmeo https://stackblitz.com/edit/angular-txchxs?embed=1&file=src/app/agentFilter.pipe.ts
【问题讨论】:
-
在您的示例中,
valueToSearchparameter 值是否为agent3??
标签: arrays json angular typescript