javascript - 多个条件用 OR ||在 'if' 声明 JS

标签 javascript if-statement operators or-operator

我正在尝试在一个“if”语句中使用 OR 编写多个条件。

我正在尝试编写的 sudo 代码:

如果状态为空导航,如果状态为“完成”导航,如果状态为“失败”导航。

到目前为止,这是我的代码:

   if ((_.isEmpty($scope.status)) || ($scope.status != ('completed' || 'failed'))) {
        return frameworkService.navigateTo('giftcardWelcome');
    }

_.isEmpty 检查有效,检查状态是否为“已完成”有效,但在检查 || 时对于“失败”,它没有执行此操作。

有人可以向我解释为什么以及如何正确编写吗?我知道我可以写一个扩展的 if 语句,但想要一种干净的重构方式。

最佳答案

('completed' || 'failed') === 'completed' - 因为这就是 javascript 的工作方式 - 你需要单独检查相等性......

你需要

|| ($scope.status != 'completed' &&  $scope.status != 'failed')

注意 && 而不是 || ... 因为 $scope.status != 'completed' || $scope.status != 'failed' 将始终为真 - 因为逻辑

关于javascript - 多个条件用 OR ||在 'if' 声明 JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52509346/

相关文章:

javascript - 使用 JQuery 将行中包含的属性链接添加到表中

javascript - 寻求有关异步javascript的澄清

android - 如何显示巨大的类别和子类别列表?

android - if else 条件与单选按钮不工作按钮点击在 android

haskell - 我什么时候应该使用$(并且它总是可以用括号替换)?

c++ - ->(指向成员)运算符的作用是什么?

javascript - 使用 KineticJS 绘制有根树

r - 取出数据子集,取平均值,创建一个新的数据框。有更容易的方法吗?

Javascript:+= 运算符的奇怪行为

javascript - 使用转换和 JavaScript 来订购 CSS 样式