繁体   English   中英

有没有更优雅的javascript解决方案?

[英]Is there a more elegant javascript solution?

正在使用角色检查功能。 我将纯文本用户角色存储在数据库中,因为它更易于理解。 我将userRole转换为$ roles数组的索引值,对needRoleRole做同样的操作,然后检查userRole值是否小于所需的RoleValue。 它可以工作,但是似乎有一种更干净的方法可以做到。 我错了吗?还是可以用更少的代码来完成相同的事情?

roleCheck = function(){
    var userRole = 'admin'; 
    var reqRole = 'producer'
    var $roles = ['super', 'admin', 'producer', 'resource','client'];
    var userRoleValue;
    var reqRoleValue;

    _.each($roles, function(v, i){
        if(v===userRole){
            userRoleValue = i;
        }
    })

    _.each($roles, function(v, i){
        if(v===reqRole){
            reqRoleValue = i;
        }
    })
    if(userRoleValue<=reqRoleValue){
        return true;
    }else{
        return false;
    }

}

您可以使用.indexOf简化此.indexOf

演示

roleCheck = function (){
  var userRole = 'admin',
      reqRole = 'producer',
      roles = ['super', 'admin', 'producer', 'resource','client'];


  return (roles.indexOf(userRole) <= roles.indexOf(reqRole));
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM