这个表达式可以简化吗?

时间:2017-02-13 04:49:23

标签: javascript boolean boolean-logic boolean-expression

我需要简化这个表达式

  var foo = (!A && B && C) || (A && B && !C) ;

有人能建议使用最少的运营商进行良好的简化吗?

2 个答案:

答案 0 :(得分:4)

B在两种情况下都很常见,因为可以使用休息条件运算符。

var foo = B && (A ? !C : C);

它是一个XOR操作,请阅读Logical XOR in JavaScript

答案 1 :(得分:2)

由于(!A && C) || (A && !C)是XOR的扩展,您可以用XOR表达式替换该部分:

var foo = B && (!!A ^ !!C);