OR和and条件没有按预期返回-实现它的最佳方法是什么?

OR and AND conditions not returning as expected - What is best way to implement it?

本文关键字:实现 最佳 是什么 方法 返回 条件 and OR      更新时间:2023-09-26

我有一个If语句,使用&&运算符如if((a || b) &&c)然而,它只适用于第一个条件,即a,但不适用于第二个条件,即b,即使运行调试器,我可以看到条件得到满足,它进入正确的代码行。有没有更好的方法让它在两种情况下都起作用?

代码:

function _getCatFormGUID(catName) {
debugger;
var dept = Browser.getValue(getElement("126D81CA203C21CF014C8A3550227892FE4B4A6A"));
if((catName == '1' && dept == "Entwicklung") || (catName == '7' && dept == "Entwicklung")){
    return "A270AE7F957A74EF0842403EEA0032017567F3E8";
}
if((catName == '1' && dept != "Entwicklung") || (catName == '7' && dept != "Entwicklung")) {
    return "8EDD0768A7CDF8FD8AE90DB473F41EF0B33FA14F";
}

return "";}

我也试过以下方法:

if((catName == '1'  || catName == '7') && dept == "Entwicklung"){
    return "A270AE7F957A74EF0842403EEA0032017567F3E8";
}

if(catName == '1' && dept == "Entwicklung"){
    return "A270AE7F957A74EF0842403EEA0032017567F3E8";
}
if(catName == '7' && dept == "Entwicklung"){
    return "A270AE7F957A74EF0842403EEA0032017567F3E8";
}   

它只返回catName =='1'。

如果我正确理解了你的问题,我会写你的第一个比特代码如下

function _getCatFormGUID(catName) {
    var dept = Browser.getValue(getElement("126D81CA203C21CF014C8A3550227892FE4B4A6A"));
    if (catName == '1' || catName == '7') {
        if(dept == 'Entwicklung'){
            return "A270AE7F957A74EF0842403EEA0032017567F3E8";
        }
        else{
            return "8EDD0768A7CDF8FD8AE90DB473F41EF0B33FA14F";
        }
    }
    else{
        return "";
    }
}

问题是你必须理解这两个逻辑运算符是如何进行比较的:因为你的第一个条件catName == '1'为真,它永远不会从第一个括号转到第二个条件,也不会在第二个括号中。

给定示例,您可以将逻辑条件改写为:
if((catName == '1' && dept == "Entwicklung") || (catName == '7' && dept == "Entwicklung")){ return "A270AE7F957A74EF0842403EEA0032017567F3E8"; }

if(dept == "Entwicklung" && catName == '1' || catName == '7'){ return something; } }