迭代一个数组

时间:2013-09-14 11:47:30

标签: javascript jquery arrays

我已经构建了一个如下所示的数组

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

Condtional check: 如果此数组中的任何值为 false ,我将显示错误消息 否则,如果一切都是真的,我将显示成功消息。

我厌倦了下面的代码来迭代,但无法构建其中的逻辑。

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

我正在努力使用上述条件迭代数组。

任何人都可以通过有效的解决方案指出我正确的方向。

5 个答案:

答案 0 :(得分:4)

不需要jQuery

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

此外,正如之前的评论者已经指出的那样,iArray已经是一个数组,不需要在其上使用split

{9}在Internet Explorer 9中不可用。但是,可以使用匹配算法轻松添加此功能。有关兼容性以及如何创建变通方法,请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf

答案 1 :(得分:2)

iArray已经是一个数组了,所以不需要再拆分它(split是String的一个方法,Arrays没有它)

您需要做的是检查false值的索引,如果有,则数组中存在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
}

答案 2 :(得分: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");
        }
    }

答案 3 :(得分:1)

Aternatives:

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

if ( ''.replace.call(iArray,/true|,/g,'').length ) { }

答案 4 :(得分: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
}