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

时间:2019-05-07 14:23:18

标签: 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
}

因此,如果定义了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
}

1 个答案:

答案 0 :(得分:7)

||!vm.user.admin使用OR(anotherCondition):

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

那样:

  • 如果用户不是管理员,则!vm.user.admintrue,而||true作为结果
  • 如果用户是管理员,则!vm.user.adminfalse,因此||将评估anotherCondition的结果作为其结果