我有两个字符串存储在a
和b
中。如果两个字符串都具有某些值,我想进行一些验证。为此,我使用:
if(a && b) {
//Do some processing.
}
但是,如果其中一个是空的,而另一个不是空的,那么我需要将其分开对待。如果两者都为空,则无需执行任何操作。因此,基本上处理这种情况是XNOR的错误情况。
我可以这样:
if((a && !b) || (!a && b)) {
//handle separately.
}
有没有比这更好的方法了?
最佳答案
让我们将两个单独的if语句合并为一个(实际上是相同的,但将有助于简化):
if (a && b)
// do some processing
else if (a && !b || !a && b)
// do other processing
为了弄清楚是否可以进一步简化,让我们看一下第二个条件的真值表:
a | b | x
--------------
1 | 0 | 1 (a && !b)
0 | 1 | 1 (!a && b)
0 | 0 | 0 (a && b) (negating the first if)
您可以看到,当
x
为true或a
为true时,出现了积极的结果(b
= 1),这简化为a || b
。 if语句的最终版本如下所示:if (a && b)
// do some processing
else if (a || b)
// do other processing
关于javascript - 在JavaScript中执行xnor,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47893479/