Javascript 有没有一种简单的方法来跟踪触发比较语句的原因?
比如说Javascript 有没有一种简单的方法来跟踪触发比较语句的原因?,javascript,Javascript,比如说 var reason = None; if (a == 1 || b == 1) { x = True; } /*some code where x became True................*/ /*here I need to assign the "reason" variable with a or b value*/ 如果有一次x等于真。如何找出为什么x变为真?因为a=1还是因为b=1? 原因是什么?原因在“a”或“b”中?我需要将
var reason = None;
if (a == 1 || b == 1) {
x = True;
}
/*some code where x became True................*/
/*here I need to assign the "reason" variable with a or b value*/
如果有一次x等于真。如何找出为什么x变为真?因为a=1还是因为b=1?
原因是什么?原因在“a”或“b”中?我需要将“reason”变量赋值为a或b
如何用最少的代码做到这一点?(最简单的实现)我认为问题是试图区分析取的哪个部分产生了它的真值
(a==1 | | b==1)
可能是真的,原因有三个(这正是您测试每一个的方式):
用操作码来说
函数为什么(a,b){
设x=false
让理由='a和b都不是1'
如果(a==1 | | b==1){
x=真;
如果(a==1&&b==1)原因='因为a和b都是1'
else如果(a==1)原因='因为只有a是1'
else reason='因为只有b是1'
}
返回{x,原因}
}
console.log(为什么(0,0))
console.log(为什么(0,1))
console.log(为什么(1,0))
log(为什么(1,1))
您不能为a和b分别使用两个if语句。JavaScript中没有None
关键字,仅供参考。还要回答您的问题:var reason=1
不管“原因”是什么,您感兴趣的变量的值都是1
。您确定这不是Python的问题吗?
a === 1
// one, or
b === 1
// the other, or
a === 1 && b === 1
// both