【问题标题】:How to simplify this boolean / tenary expression?如何简化这个布尔/三元表达式?
【发布时间】:2019-07-29 18:10:48
【问题描述】:

如何简化这个三元表达式?

c = a === false && b === false ? true : false;

c 仅当 abfalse 时为 true

【问题讨论】:

  • c = a === false && b === false;
  • 根据数据可以简单到c = !a && !b;
  • @Carcigenicate 严格检查员
  • @epascarello 是这个 !a && !b;不等于 !(a && b) ?
  • @LarryS.:是的,根据De Morgan's laws,这些是等价的。

标签: javascript boolean boolean-expression


【解决方案1】:

这里不需要三元表达式。第一个表达式本身返回的是布尔值

c = a === false && b === false

您可以使用的另一个技巧是将a !== falseb 进行比较

c = a !== false === b

这里只有两个值需要检查。如果有更多的值,那么最好使用每种方法。

c = [a,b].every(x => x === false)

【讨论】:

  • c = a !== false === b 不仅是一个丑陋的、难以理解的把戏,它也是错误的。当ab 都是true 时,这会将c 设置为true,原来的会将其设置为false
  • @ScottSauyet 我可以接受的答案是 c = a === false && b === false。这个 c = a !== false === b 看起来很漂亮,但可读性让我头疼:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-13
  • 2016-02-20
  • 1970-01-01
相关资源
最近更新 更多