0

複数のユーザーの設定(ブール値)の「交差点」を見つけるには、それらの設定オブジェクトを相互に比較する必要があります。例:ユーザーをクリックすると、そのユーザーの設定が表示されて編集できますが、異なる設定を持つことができる複数のユーザーを選択した場合、特定の設定が設定されていることを表示するために、不確定なステータスを表示できるようにしたいと思います一部のユーザーにはtrue、他のユーザーにはfalseになります。複数選択の場合、選択したすべてのユーザーに同じ設定が適用されます。

これは私がこれまでに思いついたものの例であり、それを行うためのよりエレガントな方法があるかどうかを知りたいです(異なる設定を持つ少なくとも2人のユーザーがいるとすぐに、残りは無視できます):http ://jsfiddle.net/kT7UP/

前もって感謝します。

4

1 に答える 1

2

各プロパティテストを、プロパティ名を渡す共通の関数にすることができます。したがって、すべての反復forループは次のようになります。

function checkCommonValue(prop) {
    for (var j = 0; j < userAll.length; j++) {
        if (userAll[j][prop] != model[prop]) {
            console.log('Indeterminate status');
            return(false);
        }
    }
    return(true);
}

checkCommonValue("Printing");
checkCommonValue("Sharing");
checkCommonValue("Reading");
checkCommonValue("AccountEnabled");
checkCommonValue("Fax");

基本的なコーディング原則DRYを覚えておいてください(繰り返さないでください)。ほぼ同じコードブロックを繰り返している場合は、同じコードを複数の場所にコピーして貼り付けるのではなく、そのコードを複数の場所から呼び出すことができる共通の関数に分割する方法を考えるときが来ました。

于 2012-04-25T21:12:54.000 に答える