我在JavaScript中进行了if
测试,它实现了我想要的但不尽可能优雅。它是这样的:
if (x > y || p < q) {
// don't do anything
} else {
doSomeFunction();
}
如果有任何方法可以翻转这个逻辑,那么只有一个if
语句而不必具有虚拟if条件以及else
条件?
答案 0 :(得分:8)
您可以使用!
operator来反转条件:
if (!(x > y || p < q)) {
doSomeFunction();
}
或者简单地重写这样的条件:
if (x <= y && p >= q) {
doSomeFunction();
}
注意:有关这两个条件相同的原因的解释,请参阅De Morgan's laws。
答案 1 :(得分:2)
您可以简单地反转比较和逻辑OR。
if (x <= y && p >= q) {
doSomeFunction();
}
答案 2 :(得分:2)
除了另一个答案,最后一个选项(不太可读)是:
(x > y || p < q) || doSomeFunction();
如果左括号为true,则 NOT 执行该功能。