我已经构建了一个如下所示的数组
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
}
我正在努力使用上述条件迭代数组。
任何人都可以通过有效的解决方案指出我正确的方向。
答案 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
}