获取数组的布尔结果

时间:2015-11-02 09:50:54

标签: javascript

让我们说我的数组中包含n个布尔值元素。

var a = [true,false,true,true,false]

如何进行数组的OR产品。

那样var result = (true || false || true || true || false) = true

5 个答案:

答案 0 :(得分:7)

您可以使用some

var result = a.some(function(value) {
    return value;
});

答案 1 :(得分:1)

简短的一个命令。

!!~a.indexOf(true)

答案 2 :(得分:1)

所有这些建议都太复杂了。保持简单。如果您想要 OR ,那么您只需要检查数组是否包含单个true值:

var result = a.indexOf(true) != -1;

同样,如果您想要 AND ,您可以检查它是否不包含false值,如果您想要一个空数组导致false,那么也检查长度:

var result = a.length > 0 && a.indexOf(false) == -1;

Here is a working example,显示行动中的OR和AND。

所有当前答案的here is a performance review,你可以看到保持简单,这比其他建议快得多(好吧,Nina接近我的,因为她的回答相似,但不太可读的IMO) 。当然你可以说性能不会被这样的东西注意到,但最好还是使用最快的方法。

答案 3 :(得分:0)

您可以迭代数组并找到它。



var a = [false,false,false,false,false]
var result = a[0];
for(i=0;i<a.length;i++){
    result = result || a[i]
}
alert(result);
&#13;
&#13;
&#13;

我希望这会对你有所帮助

https://jsfiddle.net/0yhhvhu7/3/

答案 4 :(得分:0)

来自MDN

  

Array.prototype.reduce()方法对累加器和数组的每个值(从左到右)应用函数以将其减少为单个值。

a.reduce(function(prev, curr) {
  return prev || curr;
});