javascript - 简化三路比较 a < b < c || b < c < a || c < a < b;

标签 javascript comparison operators boolean-expression boolean-algebra

有没有更短的方法来计算这个 bool 表达式?a < b < c || b < c < a || c < a < b在 JavaScript 中,这将是:a < b && b < c || b < c && c < a || c < a && a < b是否有一些有用的数学或 bool 代数技巧可以让这变得不那么麻烦?a , bc都是数字。在我的特定用例中,它们保证是不同的。
(有关其他上下文,它出现在回答 this question 的过程中)

最佳答案

您有 3 个不同的 bool 比较,您希望其中 2 个保留。 (严格来说,2 个或更多,但在你的情况下,你永远不可能拥有全部 3 个)。所以你可以写

a < b && b < c || b < c && c < a || c < a && a < b
作为
(a < b) + (b < c) + (c < a) == 2

关于javascript - 简化三路比较 a < b < c || b < c < a || c < a < b;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68573609/

相关文章:

c# - 如果(实例)/自定义类上的隐式 bool 转换

javascript - 为什么 API 中的 1 个值没有保存?

javascript - 循环中的异步回调

algorithm - 如何为 B2B 创建神奇的购物车?

objective-c - 将字符串与 Objective-C 中的数组进行比较

c - 需要对此进行一些澄清

javascript - 图像预加载不适用于 FireFox 中的图像

javascript - 打印fabricjs Canvas ?

Powershell - 比较文件夹内容

c - 在 C 中使用模运算符会产生一些奇怪的结果