简化Javascript中的嵌套三进制



我有以下代码:

return this.condition1
? condition2
? true
: false
: false

有没有一种方法可以在不使用truefalse的情况下写这篇文章?

是的,您可以简化它;您不需要任何三元运算符:

return this.condition1 && condition2;

执行测试以选择truefalse是多余的。您可以使用!!将"truthy"值转换为布尔值,如果测试表达式已经提供了布尔值(例如><比较(,那么您已经获得了所需的值。

return this.condition1 && condition2;

应足以在CCD_ 8和其他条件下使用。请注意,它并不是严格地等效于您的代码的javascript。

为了确定返回truefalse(作为基元boolean值(,您需要将其强制为布尔值,如下所示:

return !!(this.condition1 && condition2);

(这确实是为了准确起见,不过在大多数情况下,我会推荐第一个更简单的版本(。

最新更新