您描述它的方式与标题略有不同。如果您只是在它们都是错误的情况下尝试执行该功能,那么史蒂夫的回答很棒。不过,根据这个数组的来源,我可能会像这样扩展它,以防备它:
if (array.indexOf(true) == -1 && array.indexOf(null) == -1) {
functionA();
}
OTOH,如果您想在它们都相同的任何时候运行它,那么您将需要更复杂的逻辑。
在这种情况下,我可能会设置一个标志,在循环中更新它,然后在循环之后执行函数调用。您还需要一个变量来跟踪先前的值。如果任何值与其先前的值不匹配,则它们并不完全相同,因此您将标志设置为 false。然后,在循环之后,您检查标志并运行该函数,如果它是真的。
像这样的东西:
var runFunction = true;
var previousVal = -1;
for (var i = 0; i < array.length; i++){
if(previousVal === -1) {
previousVal = array[i];
}
if(array[i] !== previousVal){
runFunction = false;
break;
}
}
if (runFunction) {
functionA();
} else {
// Do something else
}