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

javascript检查if语句中的多个条件,javascript,Javascript,我有一个if语句,它检查多个条件。如果至少有一项返回false,我希望它跳过条件语句。我可以看到,如果至少有一件事是真的,它当前正在接受条件语句 if((api != 'abosp') || (api !='sersp') || (api !='volsp') || (api !='consp') || (api !='givsp') || (api !='blosp')){ console.log("api: " + api ); api = 'cussp' } 实现这种逻辑的正确方法是什

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

if((api != 'abosp') || (api !='sersp') || (api !='volsp') || (api !='consp') || (api !='givsp') || (api !='blosp')){
console.log("api: " + api  );
api = 'cussp'
}
实现这种逻辑的正确方法是什么


当前,如果api='abosp',它仍将传递到条件语句中,而不是跳过它。

您应该更改| | for and运算符:&&。不过,一个更干净的方法是:

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

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

您应该更改| | for和运算符:&&。不过,一个更干净的方法是:

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

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

我想你在找&&而不是| |


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

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

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

实际上,if不能计算为true,因为api不能是您检查的所有值。我想您需要and&&而不是or | |:

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

d = {abosp: 1, sersp: 1, volsp: 1, consp: 1, givsp: 1, blosp: 1};
if (!d[api]) api = 'cussp';
实际上,您的if不能计算为true,因为api不能是您检查的所有值。我想您需要and&&而不是or | |:

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

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

此概念称为短路评估此概念称为短路评估