2016-11-09 79 views
2

我有4個變量,它們中的任何可以是真或假布爾邏輯,真要是1出4都爲真

var a 
var b 
var c 
var d 

我想測試3個條件:

  1. 真,如果1出4爲真
  2. 真,如果2出4爲真
  3. 真,如果3出4爲真

我知道,0開出4時是正確的:

a!=true && b!=true && c!=true && d!=true 

和 4全是真實的時候:

a==true && b==true && c==true && d==true 

,但我不能進一步思考。

回答

2

你可以用布爾值添加變量。結果是一個數字。

value = a + b + c + d; 

然後你可以再次檢查一下數字,你想測試。

var a = false, b = true, c = true, d = true, 
 
    value = a + b + c + d; 
 

 
console.log(value);

+1

非常感謝,如此簡單,而且很有魅力。已經測試過,那正是我需要的。 – Kalle

1

當一堆要上運行相同的測試「東西」打交道時,它通常對他們有意義組使用數組。

var collection = [a, b, c, d]; 

然後,您可以得到與filter匹配測試元素的數組:

var true_elements = collection.filter(function (value) { return (value == true); }); 

您可以再算上結果:

console.log(true_elements.length); 

,做任何測試你喜歡

if (true_elements.length === 1) { ... } 
if (true_elements.length >= 1) { ... } 
// etc 
+0

這是豪華。我不確定我喜歡在Javascript中添加值的C-idiomatic方式。 – Bathsheba

1

Javascript允許您將布爾類型添加到一起。在此過程中,它將參數轉換爲整數類型,其中1代表true,0代表false

所以,你可以寫

a + b + c + d == 3

作爲測試3個true值和1個false值。

並非所有的語言都支持這個(例如Java),但Javascript,C和C++都支持。請注意使用-1作爲True值的Visual Basic類型語言。