0

我需要一些关于我的 JS 逻辑的帮助。所以基本上我得到了一堆权限并将它们存储如下:

for( var i=0 ; i<permissions.length ; i++ ) {
    p[permissions[i].PERMISSION] = true;
}

权限的值如下

p.SELECT_USER,

p.INSERT_USER,

p.UPDATE_USER 等

现在我想根据权限的值显示/隐藏一个窗口。我的 if 条件需要一些逻辑帮助所以基本上我想要类似的东西,

if( 'permissions beigns with the word SELECT' && 'permissions does not begin with any other word' ) {
    this.window.hide()
} else {
    this.window.show()
}

有没有什么有效的方法我不能通过修改我的 for 循环来做到这一点?

4

1 回答 1

1
if( /^SELECT/.test(/*some permissionvalue*/) ) { /*...*/ } 

会很短,我想效率够高吗?

其他想法(一个衬里替换您的代码,如果hide并且show是包含的现有方法this.window):

this.window[ /^SELECT/.test(/*some permissionvalue*/) ? 'hide' : 'show' ]();

/^SELECT/.test(/*some permissionvalue*/)在这两个建议中意味着:测试给定值是否以 'SELECT' 开头。就像@Steve Wang 指出的那样,您可以替换它
/*some permission value*/.indexOf('SELECT') === 0以提高效率。

于 2012-07-19T21:32:36.593 回答