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*/) ) { /*...*/ } 

かなり短いだろうし、私は十分に効率的だと思いますか?

他のアイデア (hideshowが既存のメソッドに含まれている場合、1 つのライナーがコードを置き換えます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 に答える