日常项目中,经常遇到用户会有多个角色,每个角色对应的权限都不一样,需要找出最大的权限,
// 拥有的角色
let roleCodeArr = ["admin2", "123", "维护人员", "超级管理员", "管理员"];
/**
* @class 优先级
* @value 对应值
*/
let typeObj = {
超级管理员: {
class: 0,
value: "权限1",
},
管理员: {
class: 1,
value: "权限2",
},
维护人员: {
class: 3,
value: "权限3",
},
使用者: {
class: 4,
value: "权限4",
},
};
// 过滤出对应的权限
let data = roleCodeArr
.map((item) => {
if (typeObj[item]) {
return typeObj[item];
}
})
.filter((item) => item);
// 排序,找出优先级最高的
let code = data.sort((a, b) => {
return a.class - b.class;
})[0].value;
console.log(code);