如何知道if语句中哪个条件是真的?

时间:2014-01-21 20:24:42

标签: javascript conditional-statements

我如何知道JavaScript中if语句中的哪个条件为真?

if(a === b || c === d){ console.log(correctValue) }

我怎么知道它是a === b还是c === d

编辑:我想知道是否有任何方法这样做,除了检查它自己的if语句上的每个条件。

2 个答案:

答案 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);