javascript检查if语句中的多个条件

时间:2015-03-18 20:35:54

标签: javascript

我有一个if语句来检查多个条件。如果至少有一件事返回false,我希望它跳过条件语句。我可以看到,如果至少有一件事是真的,它目前正在接受条件陈述。

if((api != 'abosp') || (api !='sersp') || (api !='volsp') || (api !='consp') || (api !='givsp') || (api !='blosp')){
console.log("api: " + api  );
api = 'cussp'
}

实现这种逻辑的正确方法是什么?

目前,如果api =='abosp',它仍会传递给条件语句而不是跳过它。

3 个答案:

答案 0 :(得分:3)

你应该改变你的|| for和operator:&&。更进一步,干净"方法是:

banned = ["abosp", "sersp", "volsp", "consp", "givsp", "blosp"]

if(banned.indexOf(api) == -1){ // if api is not in list
   console.log("api: " + api  );
   api = 'cussp'  
}

答案 1 :(得分:1)

实际上,您的if无法评估为true,因为api无法检查所有值。我想你需要一个and (&&)而不是or (||)

if ((api != 'abosp') && (api !='sersp') && ...

在这种情况下,您可以使用关联数组来获得更简洁的代码:

d = {abosp: 1, sersp: 1, volsp: 1, consp: 1, givsp: 1, blosp: 1};
if (!d[api]) api = 'cussp';

答案 2 :(得分:0)

我认为你正在寻找&&而不是||。

如果任何单独的比较返回false,这将跳过条件语句。