我需要重写条件的最后一部分。我既需要和/或同时需要。
if ((params.path === 'ABC' || params.path === 'EFG') &&
(params.noPath && params.fClick))
就像params.noPath && ||在这里,我只需要一个或两个条件即可成立。请帮忙。谢谢。
答案 0 :(得分:1)
您可以使用javascript模拟XOR(XOR是combinai):
(params.noPath && !params.fClick) || ( !params.noPath && params.fClick)
使用三元的更小方法:
if ( params.noPath ? !params.fClick : params.fClick )
XOR操作可以描述为“如果两个布尔操作数不具有相同的值,则返回true”
因此,适用于任何数据类型(包括表达式)的XOR运算符的最简单,最简洁的版本是:
if ( !params.noPath != !params.fClick )
答案 1 :(得分:1)
我很确定您只需要将&&换成||
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