码率转换代码优化

码率转换

/**
 * 码率转换 
 * @param {number} data     码率值
 * @param {string} unit     码率单位
 * @param {string} conUnit  转换单位
 */
function transformBitrate(data, unit,conUnit) {
    if(unit=='Kbps'){
        if(conUnit=='Mbps'){
            return (data / (1000)).toFixed(2);
        }else if(conUnit=='Gbps'){
            return (data / (1000 * 1000)).toFixed(2);
        }
    }else if(unit=='Mbps'){
        if(conUnit=='Gbps'){
            return (data / (1000)).toFixed(2);
        }else if(conUnit=='Kbps'){
            return (data * (1000)).toFixed(2);
        }
    }else if(unit=='Gbps'){
        if(conUnit=='Mbps'){
            return (data * 1000).toFixed(2);
        }else if(conUnit=='Kbps'){
            return (data * 1000 * 1000).toFixed(2);
        }
    }

    return data;
}

优化后:

function transformBitrate(data, unit, conUnit) {
    const coefficient = {
        Kbps: 1000,
        Mbps: 1000 * 1000,
        Gbps: 1000 * 1000 * 1000
    };

    if (unit !== conUnit) {
        const result = data * coefficient[unit] / coefficient[conUnit];
        return result.toFixed(2);
    }

    return data;
}

优化:将单位转换的系数提取出来,避免重复计算。同时可以使用对象存储每个单位对应的系数,避免过多的 if 判断。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值