起因
最近在看项目代码的时候发现了很多的if-else判断,一层套了一层,很不清晰,于是上网找了一下解决方案。
可能的解决方案有
if(condition1){
if(condition2){
if(condition3){
}
}
}
if(!condition1){
return;
}
if(!condition2){
return;
}
if(!condition3){
return;
}
switch(condition){
case 'A':
functionA();
break;
case 'B':
functionB();
break;
case 'C':
functionC();
break;
case 'D':
functionD();
break;
case 'E':
functionE();
break;
case 'F':
functionF();
break;
}
- 嵌套的if-else较多,判断的条件很复杂的时候,还可以用object
var a = true
var b = true
var c = false
var obj = {
'isAisBisC':function() {console.log('isAisBisC')},
'isAisBnotC':function() {console.log('isAisBnotC')},
'isAnotBisC':function() {console.log('isAnotBisC')},
'isAnotBnotC':function() {console.log('isAnotBnotC')},
'notAisBisC':function() {console.log('notAisBisC')},
'notAisBnotC':function() {console.log('notAisBnotC')},
'notAnotBisC':function() {console.log('notAnotBisC')},
'notAnotBnotC':function() {console.log('notAnotBnotC')}
}
var opt1 = a?'isA':'notA'
var opt2 = b?'isB':'notB'
var opt3 = c?'isC':'notC'
obj[opt1+opt2+opt3]()