其中一个不像其他......在一个数组中?

时间:2014-07-31 03:02:58

标签: javascript arrays

Hello我正在构建一些将一系列布尔值推送到数组的东西。

最后,数组看起来像这样:

var booleanArray = [true, true, true, false, true];

我想要做的是创建一个函数来评估该布尔填充数组的所有值,如果有一个或多个值为false,它会做一些事情。

这是否可以在不创建多个嵌套if语句的情况下完成?

如果它在找到第一个错误时停止遍历数组,则获得积分。

2 个答案:

答案 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

之前