具体真相的陈述 table

Statement for specific truth table

我有三个变量,variationattributeactive,我需要为它们创建一个 if 语句来表示以下事实 table:

variation attribute active Result
[object Object] 'color' true TRUE
undefined undefined undefined TRUE
[object Object] 'color' false FALSE

但我想不出一个聪明而紧凑的案例陈述,除非我在 or 分隔的长陈述中写下所有需要的 true 场景...

有人可以帮我解决这个问题吗?

Here 对你来说很快 fiddle。

TIA。

您可以将所有值取反为布尔值并检查它们是否都相等:

!variation == !attribute && !attribute == !active

JavaScript 中的值可以是 truthyfalsy

  • [object 对象], 'color', true => truthy
  • 未定义,错误 => 错误

因此,当您将逻辑 NOT 运算符 (!) 放在一个值之前时,您有效地否定了它,这意味着所有真值都变成了布尔值 false 而所有假值都被转换为布尔值true.


当所有变量都为真或所有变量为假时,你的真理 table 似乎 return 为真,而当它们混合时 return 为假。

所以它基本上检查所有值在转换为布尔值时是否相等。所以上面的条件将值转换为相反的布尔值并检查它们是否相同。