if else多条件判断 优雅写法

优化前:

    let num = 17.5
    const fn = () => {
        if (num >= 16 && num < 17) {
            console.log(16.5);
        } else if (num >= 17 && num < 17.6) {
            console.log(17.5);
        } else if (num >= 10.5 && num < 11) {
            console.log(10.6);
        }
    }
    fn()
    // console.log(17.5)

优化后:

    const functionA = () => { console.log(16.5); }
    const functionB = () => { console.log(17.55); }
    const functionC = () => { console.log(10.6); }

    const actions = new Map([
        [[16, 17], () => { functionA() }],
        [[17, 17.6], () => { functionB(), functionC() }],
        ['default', () => { functionC() }],
    ])

    const onButtonClick = (num) => {
        let A = []
        actions.forEach((fn, key) => {
            if (num >= key[0] && num <= key[1]) A = key
        });
        let action = actions.get(A) || actions.get('default')
        action.call(this)
    }
    onButtonClick(17.5)

//console.log(17.5)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值