比方说,我有一个包含n
布尔值元素的数组。得到数组的布尔结果
var a = [true,false,true,true,false]
我该如何做数组的OR乘积。在一个命令
var result = a.some(function(value) {
return value;
});
比方说,我有一个包含n
布尔值元素的数组。得到数组的布尔结果
var a = [true,false,true,true,false]
我该如何做数组的OR乘积。在一个命令
var result = a.some(function(value) {
return value;
});
您可以使用some
。
!!~a.indexOf(true)
简称:
使var result = (true || false || true || true || false) = true
您可以遍历数组并找到它。
var a = [false,false,false,false,false]
var result = a[0];
for(i=0;i<a.length;i++){
result = result || a[i]
}
alert(result);
我希望这会帮助你
比较,当你发现第一次TRUE;不需要其他循环,因为值没有改变 – Grundy
从MDN
的
Array.prototype.reduce()
方法适用的功能对的储液器查找数组的每个值(从左到右)以将其减少为单个值。
a.reduce(function(prev, curr) {
return prev || curr;
});
所有这些建议都太复杂。只是保持简单。如果你想OR,那么你只需要检查,如果数组包含单个true
值:
var result = a.indexOf(true) != -1;
同样,如果你想和你可以只检查,如果它不包含false
值,如果你还希望导致假空数组然后检查长度也:
var result = a.length > 0 && a.indexOf(false) == -1;
Here is a working example,它显示了OR和AND的作用。你可以看到保持简单,比其他建议快得多(当然,Nina离我的距离很近,因为她的回答很相似,但可读性差)。当然,你可以争辩,性能不会被这样的事情所注意到,但仍然更好地使用最快的方法。
'a.indexOf(真)> -1' – Tushar
为什么不直接用'-1' :-) – Grundy