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

时间:2015-08-28 06:05:45

标签: javascript operators

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

我现在的代码:

/Applications/XAMPP/xamppfiles/htdocs/onlineshopping/insertproductitems.php

我也尝试了以下内容:

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";
}

它只返回catName =='1'。

2 个答案:

答案 0 :(得分: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 "";
    }
}

答案 1 :(得分:0)

问题在于你必须理解这两个逻辑运算符如何进行比较:因为你的第一个条件catName == '1'为真,它将永远不会从第一个括号或第二个副词进入第二个条件。 br />
根据你的例子,你可以改写你的逻辑条件:
if((catName == '1' && dept == "Entwicklung") || (catName == '7' && dept == "Entwicklung")){ return "A270AE7F957A74EF0842403EEA0032017567F3E8"; }

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