有条件地改变if-else块的顺序

时间:2013-04-27 11:54:34

标签: javascript if-statement

有没有一种优雅的方法来解决这个问题?

if (condition0) {
  if(condition1) {
    do thing 1
  }
  else if(condition2){
    do thing 2
  }
}
else {
  if(condition2) {
    do thing 2
  }
  else if(condition1){
    do thing 1
  }
}
带有大量参数的

do thing 1do thing 2函数调用,似乎有不必要的重复。

有更好的方法吗?

2 个答案:

答案 0 :(得分:2)

if (condition1 && (condition0 || !condition2)) {
  do thing 1
} else if (condition2) {
  do thing 2
}

答案 1 :(得分:1)

为了避免重复代码,您可以存储事物1并在函数中执行事物2。为了使它干净。

var DoThing1 = function ()
{
   do thing 1
}

var DoThing2 = function ()
{
    do thing 2
}
if (condition0) {
    if(condition1) {
        DoThing1();
    }
    else if(condition2){
        DoThing2();
    }
}
else {
    if(condition2) {
        DoThing2(); 
    }
    else if(condition1){
        DoThing1();
    }
}