JavaScript中判断a、b、c仅其中一个存在的语法实现咨询
判断三个变量仅一个为真的JavaScript语法写法
你原始的逻辑思路没问题,只需要转换成JavaScript对应的语法和运算符即可:
对应你逻辑的直观写法
if ((a && !b && !c) || (b && !a && !c) || (c && !a && !b)) { // 当且仅当三个变量中只有一个为真时,执行这里的代码 }
这里把你写的and替换为JS的逻辑与&&,or替换为逻辑或||,not替换为逻辑非!,同时给每个子判断加上括号,避免因运算符优先级导致逻辑出错。
更简洁的扩展写法
如果之后需要判断更多变量,用数组统计真值数量的方式更灵活:
const truthyCount = [Boolean(a), Boolean(b), Boolean(c)].filter(Boolean).length; if (truthyCount === 1) { // 仅一个变量为真时执行的逻辑 }
Boolean()用来确保每个变量被转为标准布尔值,filter(Boolean)会筛选出所有真值,最后判断筛选结果的长度是否为1即可。
内容的提问来源于stack exchange,提问作者Bobby
相关产品推荐
相关产品推荐

