我正在尝试在一个“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/