让我们说我的数组中包含n
个布尔值元素。
var a = [true,false,true,true,false]
如何进行数组的OR产品。
那样var result = (true || false || true || true || false) = true
答案 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;
我希望这会对你有所帮助
答案 4 :(得分:0)
来自MDN
Array.prototype.reduce()
方法对累加器和数组的每个值(从左到右)应用函数以将其减少为单个值。
a.reduce(function(prev, curr) {
return prev || curr;
});