Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 这些东西中的一个和另一个不一样。。。在阵列中?_Javascript_Arrays - Fatal编程技术网

Javascript 这些东西中的一个和另一个不一样。。。在阵列中?

Javascript 这些东西中的一个和另一个不一样。。。在阵列中?,javascript,arrays,Javascript,Arrays,你好,我正在构建一个将一系列布尔值推送到一个数组的东西 最后,阵列的外观如下所示: var booleanArray = [true, true, true, false, true]; 我想做的是创建一个函数,该函数将评估该布尔填充数组的所有值,如果有一个或多个值为false,它将执行一些操作 在不创建多个嵌套的if语句的情况下,这是完全可能的吗 如果在发现第一个值为false时停止在数组中循环,则会获得额外点数。即使数组中的一个值与其他值不同,代码也会检测并执行一些操作 var val =

你好,我正在构建一个将一系列布尔值推送到一个数组的东西

最后,阵列的外观如下所示:

var booleanArray = [true, true, true, false, true];
我想做的是创建一个函数,该函数将评估该布尔填充数组的所有值,如果有一个或多个值为false,它将执行一些操作

在不创建多个嵌套的if语句的情况下,这是完全可能的吗


如果在发现第一个值为false时停止在数组中循环,则会获得额外点数。

即使数组中的一个值与其他值不同,代码也会检测并执行一些操作

var val = a[0];
for(i = 1; i< a.length; i++){
  if(a[i] !== val){/*do something*/}
  else{val = a[i];}
}
var-val=a[0];
对于(i=1;i
a
是您的阵列。 认为代码只是一个想法。
您必须检查
a
长度。在执行[0]

之前,您只需检查第一个索引true和false:

因此,如果没有真成员,它们必须全部为false(或数组为空),或者如果没有假成员,它们必须全部为true(或数组为空),否则它将返回false,因为必须同时存在true和false


如果没有成员(即数组为空),则返回true。

这是否意味着如果只有一项不同,则需要不同的行为?或者一个或多个?具体来说,如果其中两个东西与另一个不一样会发生什么?您真的需要数组吗?您可以有两个变量--
wasAnythingFalse
wasAnythingTrue
--您只需设置适当的变量,而不是将布尔值推入数组。最后,如果两个都设置了,那么您就知道条件不尽相同。@Evantimboli 1或更多,但仅当为false时,并且无法检查同质实例,因为如果它们都为false,则必须执行
操作。@slebetman如果一个或多个条件为false以允许任何长度的数组,则只需从i的0开始。如果数组有零个或1个成员,则它没有与其他数组不同的成员。;-)注意到这一点,我相信如果[0]是不同的东西,这将失败。你必须检查至少3件事才能知道奇怪的是什么。@MikeBell它将第一个值与所有其他值进行比较,因此如果第一个值不同,它将在第一次检查时失败。
// 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;
}