javascript检查if语句中的多个条件
我有一个if语句,它检查多个条件。如果至少有一项返回false,我希望它跳过条件语句。我可以看到,如果至少有一件事是真的,它当前正在接受条件语句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((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';
此概念称为短路评估此概念称为短路评估