Javascript 寻找聪明的方法重新设计此和/或声明
我需要重写条件的最后一部分。我需要两者和/或一起使用Javascript 寻找聪明的方法重新设计此和/或声明,javascript,Javascript,我需要重写条件的最后一部分。我需要两者和/或一起使用 if ((params.path === 'ABC' || params.path === 'EFG') && (params.noPath && params.fClick)) 像params.noPath&&&| | params.click===>在这里,我只需要一个或两个条件为真。请帮忙。谢谢 您可以用javascript模拟XOR(XOR是组合),如下所示: (params.noPath &
if ((params.path === 'ABC' || params.path === 'EFG') &&
(params.noPath && params.fClick))
像params.noPath&&&| | params.click===>在这里,我只需要一个或两个条件为真。请帮忙。谢谢 您可以用javascript模拟XOR(XOR是组合),如下所示:
(params.noPath && !params.fClick) || ( !params.noPath && params.fClick)
使用三元的更小方式:
if ( params.noPath ? !params.fClick : params.fClick )
异或运算可以描述为“如果两个布尔操作数的值不相同,则返回true” 因此,适用于任何数据类型(包括表达式)的最简单、最干净的XOR运算符版本是:
if ( !params.noPath != !params.fClick )
我很确定你只需要把&&换成||
if ((params.path === 'ABC' || params.path === 'EFG') && (params.noPath || params.fClick))
因为“一个或两个”在逻辑上是相同的,至少有一个是真的
如果path为ABC或EFG且noPath为true,则上述将返回true
如果path为ABC或EFG且fClick为true,则上述将返回true
如果path为ABC或EFG且noPath和fClick为true,则上述内容将返回true
否则它将返回false对于您已有的代码,什么不起作用?您为什么要重写它?一个或两个==
params.noPath | | params。单击
O.oI不知道在这种情况下逻辑是否正确-这种情况有效吗。然而,我现在可以阅读和理解逻辑。因此,我不确定为什么需要重新编写。true | | true
是true
,它不是独占的。为什么不干脆params.noPath!==参数fClick
<代码>错误!==未定义的带有“!”的Cid,可用于任何数据类型,包括表达式谢谢。成功了。这是我一直在寻找的东西。@VLAZ^
是一个按位的XOR
,而不是布尔运算符