比方說,我有一個包含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