如何优化嵌套if?

时间:2016-01-06 11:45:16

标签: javascript

您好,我想知道有更好的方法吗? condition_a比b更重要,b比c等更重要。

var slot = condition_a

if (!slot) {
  slot = condition_b
  if (!slot) {
    slot = condition_c
    if (!slot) {
      slot = condition_d
      if (!slot) {
        slot = condition_e
      }
    }
  }
}

if (slot) {
  //do something
}

3 个答案:

答案 0 :(得分:3)

你做OR

if (condition_a || condition_b || condition_c || condition_d || condition_e) {
      // do something
}

这相当于您的代码。如果条件评估为true,则不会检查以下条件(它被称为short circuit evaluation)。它可以进行这样的检查:

if (a===null || a.b===0) {

请注意,在同一个地方有这么多条件看起来像代码味道:可能还有一些在语义上没有设计的东西。

答案 1 :(得分:0)

您也可以使用html这样的条件,

||

示例Fiddle

答案 2 :(得分:-1)

如果您需要slot来获得一个值(而不是仅仅使用它来测试最后的条件)

var slot = condition_a || condition_b || condition_c || condition_d || condition_e;
if (slot) {
  // do soemthing
}