OR 和 AND 条件未按预期返回 - 实施它的最佳方法是什么?

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

我有一个使用 || 的 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";
}   

只有 returns 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; } }