javascript多个判断条件的改写

起因

最近在看项目代码的时候发现了很多的if-else判断,一层套了一层,很不清晰,于是上网找了一下解决方案。

可能的解决方案有

  • 有些没有else的条件判断可以提出来。
if(condition1){
    if(condition2){
        if(condition3){
            //do sth.
        }
    }
}
//改写成
if(!condition1){
    return;
}
if(!condition2){
    return;
}
if(!condition3){
    return;
}
// do sth.
  • 嵌套的if-else较多的时候使用switch
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]()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值