我在javascript中具有以下嵌套过滤器,但从内部过滤器返回的返回用户没有达到我想要的角色,因此我使用了另一种方法。这是我所拥有的
let admins = [];
let customers = [];
if(users.results){
users.results.filter(user => {
user.roles.filter(role => {
if(role.role.name === 'ADMIN'){
admins.push(user);
}
});
});
users.results.filter(user => {
user.roles.filter(role => {
if (role.role.name === 'CUSTOMER') {
customers.push(user);
}
});
});
}
有效负载的示例是
{
"addresses": [],
"created_at": "2020-04-18 14:21:55",
"email": "[email protected]",
"first_name": "Lucas",
"id": "5c7f9e0d-4727-416c-b0ce-61bc7542aee4",
"image": null,
"is_active": false,
"is_verified": false,
"last_name": "DeliveryPersonnel",
"phone": "2547324738723",
"roles": [
{
"role": {
"description": "Can only access the online shop",
"name": "CUSTOMER"
}
},
{
"role": {
"description": "Can only access orders for delivery",
"name": "DELIVERY_PERSONNEL"
}
}
],
"updated_at": "2020-04-18 14:21:55"
},
{
"addresses": [],
"created_at": "2020-04-18 14:20:57",
"email": "[email protected]",
"first_name": "Admin",
"id": "40f32c1e-5f53-41c7-8b78-e4918b05472d",
"image": null,
"is_active": false,
"is_verified": false,
"last_name": "Test",
"phone": "254711123456",
"roles": [
{
"role": {
"description": "Can create, view & update all records",
"name": "ADMIN"
}
},
{
"role": {
"description": "Can only access the online shop",
"name": "CUSTOMER"
}
}
],
"updated_at": "2020-04-18 14:20:57"
}
[如何在不使用数组推入方法的情况下在[email protected]
和admins
数组中同时具有customers
和在[email protected]
数组中具有customers
。
不确定此处是主要问题,但可以使用传播语法来代替使用Array.push:
admins = [...admins, user]