1

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

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

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

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

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.indexOf低于 9 的 Internet Explorer 中不可用。但是,可以使用匹配算法轻松添加此功能。有关兼容性以及如何创建解决方法,请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf 。

于 2013-09-14T11:50:55.707 回答
2

iArray已经是数组了,不需要再拆分(拆分是String的方法,Arrays没有)

你需要做的是检查一个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
 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 回答
1

替代品:

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

或者

if ( ''.replace.call(iArray,/true|,/g,'').length ) { }
于 2013-09-14T11:55:29.227 回答
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 回答