fir*_*baa 5 javascript filtering typescript ecmascript-6 angular
我有这些数据:
roles = [
{roleId: "69801", role: "ADMIN"}
{roleId: "69806", role: "SUPER_ADMIN"}
{roleId: "69805", role: "RB"}
{roleId: "69804", role: "PILOTE"}
{roleId: "69808", role: "VENDEUR"}
{roleId: "69807", role: "SUPER_RB"}
]
Run Code Online (Sandbox Code Playgroud)
我必须过滤我的表,以检查是否有一个对象包含一个特定的角色值.
我的功能应如下所示:
checkRoleExistence(role){
// if role exists on one of the objects return true
// else returne false
}
Run Code Online (Sandbox Code Playgroud)
使用它我会这样做:
let ifExists = this.checkRoleExistence("PILOTE") ;
Run Code Online (Sandbox Code Playgroud)
我想使用Ecmascript的"过滤器"功能.
建议?
Mih*_*nut 15
您可以使用some方法和解构.
let roles = [ {roleId: "69801", role: "ADMIN"}, {roleId: "69806", role: "SUPER_ADMIN"}, {roleId: "69805", role: "RB"}, {roleId: "69804", role: "PILOTE"}, {roleId: "69808", role: "VENDEUR"}, {roleId: "69807", role: "SUPER_RB"} ]
const checkRoleExistence = roleParam => roles.some( ({role}) => role == roleParam)
console.log(checkRoleExistence("ADMIN"));
console.log(checkRoleExistence("RA"));
console.log(checkRoleExistence("RB"));Run Code Online (Sandbox Code Playgroud)
对这里给出的所有答案的一点补充。您可以使用 find() 获取符合您要求的值。
const index = this.roles.findIndex(role=> role.name === 'ADMIN');
if (index >-1) {
const value= this.roles[index].roleId);
}
这会给你 roleId ,它匹配你的查询
| 归档时间: |
|
| 查看次数: |
14389 次 |
| 最近记录: |