if语句条件中的if语句条件

Laz*_*zyk 3 javascript

我正在用if语句挣扎,如果用户是admin,那么我想在其中添加另一个条件,例如vm.model.purchaseDate是否不为空

需要一些伪代码来解释它

if(vm.model.purchaseDate && (vm.user.admin then also if(anotherCondition))) {
   //do something1
   //do something2
   //do something3
   //do something4
} else {
   //do something else
}
Run Code Online (Sandbox Code Playgroud)

因此,如果vm.model.purchaseDate已定义并且用户不是,vm.user.admin则忽略anotherCondition。如果用户vm.user.admin还检查anotherCondition

当我做某件事的代码很长时,我不想结束编写大量的ifs。试图避免这种情况

if(vm.model.purchaseDate) {
   if(vm.user.admin) {
      if(anotherCondition) {
         //do something1
         //do something2
         //do something3
         //do something4
       }
   } else {
      //do something1
      //do something2
      //do something3
      //do something4
   }
} else {
   //do something else
}
Run Code Online (Sandbox Code Playgroud)

T.J*_*der 7

将OR(||)与!vm.user.admin和一起使用anotherCondition

if(vm.model.purchaseDate && (!vm.user.admin || anotherCondition)) {
   //do something1
   //do something2
   //do something3
   //do something4
} else {
   //do something else
}
Run Code Online (Sandbox Code Playgroud)

那样:

  • 如果用户是不是管理员,!vm.user.admintrue||需要true作为结果
  • 如果用户是管理员,!vm.user.admin则is false和so ||将评估anotherCondition结果作为结果