对于如下的问题你会怎么写?

staticimages问题

low版本

// 伪代码
function price(n){
    if(n >= 1 && n <= 5){
        return 5
    }else if(n >= 6 && n <= 10){
        return 4
    }else if(...){...}else{...}
}

经过思考的一版

function price(n){
    const priceMap = [
        {min: 1, max: 5, price: 5},
        {min: 6, max: 10, price: 4},
        ...
    ]
    for(const {min, max, price} of priceMap){
        if(n >= min && n <= max){
            return price
        }
    }
}

如果说判断的数据可以分离到后端的话

const [priceMap, setPriceMap] = useServise('priceMap').get()
const culcalatePrice = (n) => {
    for(const {min, max, price} of priceMap){
        if(n >= min && n <= max){
            return price
        }
    }
}

小节:算法层面是增加了复杂度,不过基于人是第一生产力,在维护的角度考虑,我认为是后者更适合写在业务中。