我有4個變量,它們中的任何可以是真或假布爾邏輯,真要是1出4都爲真
var a
var b
var c
var d
我想測試3個條件:
- 真,如果1出4爲真
- 真,如果2出4爲真
- 真,如果3出4爲真
我知道,0開出4時是正確的:
a!=true && b!=true && c!=true && d!=true
和 4全是真實的時候:
a==true && b==true && c==true && d==true
,但我不能進一步思考。
我有4個變量,它們中的任何可以是真或假布爾邏輯,真要是1出4都爲真
var a
var b
var c
var d
我想測試3個條件:
我知道,0開出4時是正確的:
a!=true && b!=true && c!=true && d!=true
和 4全是真實的時候:
a==true && b==true && c==true && d==true
,但我不能進一步思考。
你可以用布爾值添加變量。結果是一個數字。
value = a + b + c + d;
然後你可以再次檢查一下數字,你想測試。
var a = false, b = true, c = true, d = true,
value = a + b + c + d;
console.log(value);
當一堆要上運行相同的測試「東西」打交道時,它通常對他們有意義組使用數組。
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
這是豪華。我不確定我喜歡在Javascript中添加值的C-idiomatic方式。 – Bathsheba
Javascript允許您將布爾類型添加到一起。在此過程中,它將參數轉換爲整數類型,其中1代表true
,0代表false
。
所以,你可以寫
a + b + c + d == 3
作爲測試3個true
值和1個false
值。
並非所有的語言都支持這個(例如Java),但Javascript,C和C++都支持。請注意使用-1作爲True
值的Visual Basic類型語言。
非常感謝,如此簡單,而且很有魅力。已經測試過,那正是我需要的。 – Kalle