有没有办法简化以下逻辑,使用少于 5 运算符(&& / ||)
没有创建新变量?
var foo = (A || B) && C && [(A && D) || (B && E)]
答案 0 :(得分:1)
假设[]
表示()
,那么您可以删除一些括号,因为&&
(6)operator precedence超过||
(5)。
var foo = (A || B) && C && (A && D || B && E);
然后你可以放弃第一部分,因为最后一部分的条件,
var foo = (A || B) && C && (A && D || B && E);
// ^ ^ ^ ^
因为不仅A
必须true
,D
或B
也必须true
和E
。
var foo = C && (A && D || B && E);