javascript - 即使值与我设置的值不匹配,仍然会通过 IF STATEMENT
问题描述
我找不到我的代码中可能存在的缺失或错误,无论如何我已经创建了一个if else
语句,我可以在以下情况下进入第一个条件:
Variable One has a "N" value AND Variable Two or Variable Three has a "ValueOne"
或者
Variable One has a "N" AND Variable Four has a value of either "ValueTwo" or "ValueThree"
我的代码中的问题是,只要变量四具有正确的值,即使变量一中没有值,它也会进入第一个条件
您将在代码中看到的值不是我将使用的实际值,它只是一个示例。
我尝试使用此代码来解决我的问题:
function testNum() {
var accessEquipment = "n";
var sync = "sample1";
var fiberServiceAlarm = "sample1";
var wanLight = "flashingRed";
var result1 = "success";
var result2 = "fail";
if (
(accessEquipment == "n" && (sync == "sample" || fiberServiceAlarm == "sample")) ||
(accessEquipment == "n" && (wanLight == "flashingGreen" || wanLight == "off" || wanLight == "flashingRed"))) {
return result1;
} else {
return result2;
}
}
这解决了问题,但我认为以这种方式编写代码不太好。有没有办法不加倍访问设备?
这是我想要工作的实际代码:我需要在这个代码中添加什么吗?在这一个中,它仍然会转到 IF STATEMENT 事件 accessEquipment 与我设置的值不匹配,只要 wanLight 具有 flashingRed 或其他值,它仍然会转到 IF STATEMENT。我想要的是,只有当 accessEquipment 有 N 并且 wanLight 有这三个值中的任何一个时,它才会通过那里。
function testNum() {
var accessEquipment = "na";
var sync = "sample1";
var fiberServiceAlarm = "sample1";
var wanLight = "flashingRed";
var result1 = "success";
var result2 = "fail";
if (accessEquipment == "n"
&& (sync == "sample" || fiberServiceAlarm == "sample")
|| (wanLight == "flashingGreen" || wanLight == "off" || wanLight == "flashingRed")
) {
return result1;
} else {
return result2;
}
}
解决方案
需要添加一对括号
if (accessEquipment == "n"
&& ((sync == "sample" || fiberServiceAlarm == "sample")
|| (wanLight == "flashingGreen" || wanLight == "off" || wanLight == "flashingRed")))
推荐阅读
- angular - 如何在 spartacus 应用程序中知道 gigya 屏幕设置上更新了哪些首选项?
- android - 无法从 Android Material 滑块中删除填充
- php - json_encode 由于未知字符而失败
- python - 写入文件 Python 2.6.4 os.system 后调用 grep
- ruby-on-rails - 我需要为外部 API 编写测试用例而不调用它
- reactjs - 使用 matirial ui 和反应钩子进行文本字段验证
- spring-boot - spring boot 测试失败:{validatedValue} 验证错误消息未动态替换
- php - Symfony 4.4 功能测试删除表单不起作用
- typescript - 打字稿类型定义文件中的 const 枚举或数字联合
- typescript - 打字减少方法