考虑以下if语句
if (a === null || b === null || c === null) {
// I want the failing condition
}
是否可以在不需要检查每一个的情况下获得失败的条件
if (a === null || b === null || c === null) {
if (a===null){alert('a failed the check');}
if (b===null){alert('b failed the check');}
if (c===null){alert('c failed the check');}
}
我知道在上面的例子中很容易让它变得动态,考虑一个真实世界的例子来执行不同的测试。
答案 0 :(得分:3)
不,在if
块内无法获得评估为真的条件。
当然,因为您使用了or
条件,您的代码可能只是
if (a===null){alert('a failed the check');}
else if (b===null){alert('b failed the check');}
else if (c===null){alert('c failed the check');}
没有外部if
。
答案 1 :(得分:2)
如果您想知道哪个条件失败,那么您需要明确说明在if
条件下还有否方式。像这样:
if(a===null){alert('a failed the check');}
else if (b===null){alert('b failed the check');}
else {alert('c failed the check');}
旁注:
当您使用||
运算符时,一旦满足第一个false
条件,它就不会检查下一个条件。
答案 2 :(得分:1)
你可以做类似的事情:
var failed = false;
if (a===null){alert('a failed the check');failed=true;}
if (b===null){alert('b failed the check');failed=true;}
if (c===null){alert('c failed the check');failed=true;}
if (failed) { /* common logic */ }