我如何知道JavaScript中if语句中的哪个条件为真?
if(a === b || c === d){ console.log(correctValue) }
我怎么知道它是a === b
还是c === d
?
编辑:我想知道是否有任何方法这样做,除了检查它自己的if语句上的每个条件。
答案 0 :(得分:2)
如果你真的需要知道哪种情况属实,那就单独测试一下:
if(a == b) {
console.log("a == b");
return true;
} else if(c == d) {
console.log("c == d");
return true;
}
或者,你可能更喜欢这样的东西:
var result;
if ((a == b && result = "a == b") || (c == d && result = "c == d")) {
console.log(result);
return true;
}
此代码实际上与前者相同,但我不建议在生产系统中使用它。阅读和猜测代码的原始意图要困难得多 - 在您认为result =
应该是result ==
之后,读取此内容的人可能会更加困难。另请注意,因为空字符串是假的,所以必须确保分配给result
的字符串永远不会为空,否则它永远不会进入if
- 块。
答案 1 :(得分:2)
你不能。
如果重要,则需要两种不同的条件。
if (a == b) {
// it was a == b
return true;
}
if (c == d) {
// it was c == d
return true;
}
请注意,即便如此,您也不会知道这两个条件中的两个或只有一个是否正确。
如果您想了解这一点,还需要额外的if
:
if (a == b && c == d) {
// a == b and c == d
} else if (a == b) {
// just a == b
} else if (c == d) {
// just c == d
}
return (a == b || c == d);