对于如下的问题你会怎么写?
问题
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
}
}
}
小节:算法层面是增加了复杂度,不过基于人是第一生产力,在维护的角度考虑,我认为是后者更适合写在业务中。
我很可爱,请给我钱.
- 本文链接:https://meglody.github.io/diary/%E4%BB%A3%E7%A0%81%E9%A3%8E%E6%A0%BC-%E4%B8%80/
- 版权声明:本博客所有文章除特别声明外,均默认采用 许可协议。