具体真相的陈述 table
Statement for specific truth table
我有三个变量,variation
、attribute
和 active
,我需要为它们创建一个 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 中的值可以是 truthy 或 falsy。
- [object 对象], 'color', true => truthy
- 未定义,错误 => 错误
因此,当您将逻辑 NOT 运算符 (!
) 放在一个值之前时,您有效地否定了它,这意味着所有真值都变成了布尔值 false
而所有假值都被转换为布尔值true
.
当所有变量都为真或所有变量为假时,你的真理 table 似乎 return 为真,而当它们混合时 return 为假。
所以它基本上检查所有值在转换为布尔值时是否相等。所以上面的条件将值转换为相反的布尔值并检查它们是否相同。
我有三个变量,variation
、attribute
和 active
,我需要为它们创建一个 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 中的值可以是 truthy 或 falsy。
- [object 对象], 'color', true => truthy
- 未定义,错误 => 错误
因此,当您将逻辑 NOT 运算符 (!
) 放在一个值之前时,您有效地否定了它,这意味着所有真值都变成了布尔值 false
而所有假值都被转换为布尔值true
.
当所有变量都为真或所有变量为假时,你的真理 table 似乎 return 为真,而当它们混合时 return 为假。
所以它基本上检查所有值在转换为布尔值时是否相等。所以上面的条件将值转换为相反的布尔值并检查它们是否相同。