我有4个变量,它们中的任何一个都可以是真或假。
var a
var b
var c
var d
我想测试三个条件:
我知道,在以下情况下,0/4是正确的:
a!=true && b!=true && c!=true && d!=true
在以下情况下,4/4是正确的:
a==true && b==true && c==true && d==true
但我想不下去了。
发布于 2016-11-09 13:50:38
您只需使用布尔值添加变量即可。结果是一个数字。
value = a + b + c + d;
然后你可以再检查一下这个号码,你想测试一下。
var a = false, b = true, c = true, d = true,
value = a + b + c + d;
console.log(value);
发布于 2016-11-09 13:52:47
当处理一堆您想要运行相同测试的“事物”时,使用数组对它们进行分组通常是有意义的。
var collection = [a, b, c, d];
然后,您可以获得一个与过滤器匹配测试的元素数组。
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
发布于 2016-11-09 13:53:38
Javascript允许您将布尔类型添加到一起。在此过程中,它将参数转换为整数类型,true
为1,false
为0。
所以你可以写
a + b + c + d == 3
作为对3个true
值和1个false
值的测试。
并不是所有语言都支持这一点(例如Java),但是Javascript、C和C++支持。注意使用-1作为True
值的Visual类型语言。
https://stackoverflow.com/questions/40508583
复制相似问题