1

私は以下のような配列を組み立てました

iArray = [true, true, false, false, false, false, false, false, true, true, true, false, 
true, false, false, false, false, true] 

条件付きチェック: この配列のいずれかの値が true の場合falseエラーメッセージが表示され、すべてが true の場合は成功メッセージが表示されます。

以下のコードを繰り返すのにうんざりしましたが、その中にロジックを組み込むことができませんでした。

var boolIteration = iArray.split(',');
var i;
for (i = 0; i < boolIteration.length; ++i) {
    //conditional check
}

上記の条件を使用して配列を反復処理するのに苦労しています。

誰でも効率的なソリューションで正しい方向に向けることができますか?

4

5 に答える 5

4

jQueryは必要ありません

if (iArray.indexOf(false) !== -1) {
    // error
}

また、以前のコメンターがすでに指摘しているように、iArrayすでに配列であるため、使用する必要はありませんsplit

Array.prototype.indexOfInternet Explorer 9 未満では使用できません。ただし、この機能はマッチング アルゴリズムを使用して簡単に追加できます。互換性と回避策の作成方法については、https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOfを参照してください。

于 2013-09-14T11:50:55.707 に答える
2

iArrayはすでに配列であるため、再度分割する必要はありません (分割は文字列のメソッドであり、配列にはありません)

あなたがする必要があるのは、false値のインデックスをチェックすることです。ある場合は、配列に偽の値があります。

jQuery を使用 - IE との互換性のため、配列 indexOf は使用されません

iArray = [true, true, false, false, false, false, false, false, true, true, true, false, 
true, false, false, false, false, true] 
if($.inArray(false, iArray ) != -1){
    //error
}
于 2013-09-14T11:49:20.930 に答える
1

代替手段:

if (/false/i.test(iArray)) { }

また

if ( ''.replace.call(iArray,/true|,/g,'').length ) { }
于 2013-09-14T11:55:29.227 に答える
1
 var iArray = [true, true, false, false, false, false, false, false, true, true, 
true, false,true, false, false, false, false, true];

    for (var i = 0; i < iArray.length; i++) {
        if (iArray[i]) {
            alert("success");
        }
        else {
            alert("error");
        }
    }
于 2013-09-14T11:51:05.690 に答える
0

jQuery.inArray関数は、特定の値が配列内に含まれているかどうかを確認するのに便利です。

iArray = [true, true, false, false, false, false, false, false, true, true, true, false, true, false, false, false, false, true];
if ($.inArray(iArray, false) >= 0) {
  // the value "false" is contained within the array, show an error message
}
于 2013-09-14T12:02:17.523 に答える