Hello我正在构建一些将一系列布尔值推送到数组的东西。
最后,数组看起来像这样:
var booleanArray = [true, true, true, false, true];
我想要做的是创建一个函数来评估该布尔填充数组的所有值,如果有一个或多个值为false,它会做一些事情。
这是否可以在不创建多个嵌套if语句的情况下完成?
如果它在找到第一个错误时停止遍历数组,则获得积分。
答案 0 :(得分:2)
您只需检查 true 和 false 的第一个索引:
// Returns true of all members are true or all are false,
// otherwise returns false
function checkBoolArray(arr) {
return arr.indexOf(true) == -1 || arr.indexOf(false) == -1;
}
因此,如果没有 true 成员,则它们都必须为false(或者数组为空),或者如果没有 false 成员,则它们都必须为true(或者数组为空),否则返回false,因为必须有 true 和 false 。
如果没有成员(即数组为空),这也将返回true。
答案 1 :(得分:0)
即使数组上的一个值与其余值不同,代码也会检测到do something
var val = a[0];
for(i = 1; i< a.length; i++){
if(a[i] !== val){/*do something*/}
else{val = a[i];}
}
a
是你的阵容。
认为代码只是一个想法..
您必须查看length
的{{1}}。在做a