布尔逻辑,如果4中的1为真,则为true

时间:2016-11-09 13:49:12

标签: javascript boolean

我有4个变量,其中任何一个都可以是真或假

var a
var b
var c
var d

我想测试3个条件:

  1. 如果4中有1个为真,则为true
  2. 如果4中有2个为真,则为true
  3. 如果4中有3个为真,则为
  4. 我知道4个中的0个是真的:

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

    和 在以下情况下,4个中有4个是真的:

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

    但我无法进一步思考。

3 个答案:

答案 0 :(得分:2)

您可以使用布尔值添加变量。结果是一个数字。

value = a + b + c + d;

然后你可以再次检查数字,你想测试。



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

console.log(value);




答案 1 :(得分: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

答案 2 :(得分:1)

Javascript允许您一起添加布尔类型。在执行此操作时,它将参数转换为整数类型,其中true为1,false为0。

所以你可以写

a + b + c + d == 3

作为3个true值和1 false值的测试。

并非所有语言都支持此(例如Java),但Javascript,C和C ++都支持此功能。请注意使用-1作为True值的Visual Basic类型语言。