gpt4 book ai didi

javascript - 通过 Javascript 中的 Angular 色数组过滤用户对象数组

转载 作者:行者123 更新时间:2023-12-01 01:43:03 25 4
gpt4 key购买 nike

我有一个用户对象数组。我想根据用户 Angular 色数组过滤它们。

filter = ['ROLE_SELLER', 'ROLE_BANK', 'ROLE_CPF', 'ROLE_SLA', 'ROLE_LDAU']

const users = [{
"id": 1,
"email": "user1@test.com",
"name": "User1",
"roles": [{
"id": 1,
"code": "ROLE_ADMINISTRATOR",
"name": "Administrator"
},
{
"id": 2,
"code": "ROLE_SELLER",
"name": "Seller"

}
]
}, {
"id": 2,
"email": "user2@test.com",
"name": "User2",
"roles": [{
"id": 1,
"code": "ROLE_ADMINISTRATOR",
"name": "Administrator"
}]
}, {
"id": 3,
"email": "user3@test.com",
"name": "User3",
"roles": [{
"id": 1,
"code": "ROLE_ADMINISTRATOR",
"name": "Administrator"
}]
}, {
"id": 4,
"email": "user4@test.com",
"name": "User4",
"roles": [{
"id": 1,
"code": "ROLE_ADMINISTRATOR",
"name": "Administrator"
},
{
"id": 2,
"code": "ROLE_SELLER",
"name": "Seller"

}
]
}, {
"id": 5,
"email": "user5@test.com",
"name": "User5",
"roles": [{
"id": 5,
"code": "ROLE_LAWYER",
"name": "Lawyer"

}]
}, {
"id": 6,
"email": "user6@test.com",
"name": "User6",
"roles": [{
"id": 2,
"code": "ROLE_SELLER",
"name": "Seller"

}]
},
{
"id": 7,
"email": "user7@test.com",
"name": "User7",
"roles": [{
"id": 9,
"code": "ROLE_SLA",
"name": "sla"
}]
},
{
"id": 8,
"email": "user8@test.com",
"name": "User8",
"roles": [{
"id": 8,
"code": "ROLE_BANK",
"name": "Bank"

}]
},
{
"id": 9,
"email": "user9@test.com",
"name": "User9",
"roles": [{
"id": 7,
"code": "ROLE_CPF",
"name": "CPF"
}]
}
]
const filter = ['ROLE_SELLER', 'ROLE_BANK', 'ROLE_CPF', 'ROLE_SLA', 'ROLE_LDAU']

const filteredUsers = users.filter(user => !user.roles.find(role => filter.includes(role.id)))

console.log(filteredUsers)

预期结果

 [{
"id": 1,
"email": "user1@test.com",
"name": "User1",
"roles": [{
"id": 1,
"code": "ROLE_ADMINISTRATOR",
"name": "Administrator"
},
{
"id": 2,
"code": "ROLE_SELLER",
"name": "Seller"

}
]
}, {
"id": 4,
"email": "user4@test.com",
"name": "User4",
"roles": [{
"id": 1,
"code": "ROLE_ADMINISTRATOR",
"name": "Administrator"
},
{
"id": 2,
"code": "ROLE_SELLER",
"name": "Seller"

}
]
}, {
"id": 6,
"email": "user6@test.com",
"name": "User6",
"roles": [{
"id": 2,
"code": "ROLE_SELLER",
"name": "Seller"

}]
},
{
"id": 7,
"email": "user7@test.com",
"name": "User7",
"roles": [{
"id": 9,
"code": "ROLE_SLA",
"name": "sla"
}]
},
{
"id": 8,
"email": "user8@test.com",
"name": "User8",
"roles": [{
"id": 8,
"code": "ROLE_BANK",
"name": "Bank"

}]
},
{
"id": 9,
"email": "user9@test.com",
"name": "User9",
"roles": [{
"id": 7,
"code": "ROLE_CPF",
"name": "CPF"
}]
}
]

最佳答案

我正在尝试想象您想要收到的结果......

您想通过具有可能 Angular 色的数组来过滤用户,如果用户具有过滤器数组的 Angular 色之一,您想将其传递给“filteredUsers”数组,那就是另一个世界了?

filter.includes(role.id) - 我想这是错误的,也许你想要 按 Angular 色过滤?代码?

Array.find() 不支持资源管理器 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find

Array.includes() - 也不支持资源管理器。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes

关于javascript - 通过 Javascript 中的 Angular 色数组过滤用户对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52234763/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com