SOURCE

/** 
 * 场景
有一天,产品经理韩梅梅找到李雷,给李雷提了这么个需求:
马上大促要来了,我们本次大促要做差异化询价。啥是差异化询价?就是说同一个商品,我通过在后台给它设置不同的价格类型,可以让它展示不同的价格。具体的逻辑如下:

当价格类型为“预售价”时,满 100 - 20,不满 100 打 9 折
当价格类型为“大促价”时,满 100 - 30,不满 100 打 8 折
当价格类型为“返场价”时,满 200 - 50,不叠加
当价格类型为“尝鲜价”时,直接打 5 折
 */

/**
预售价 - pre
大促价 - onSale
返场价 - back
尝鲜价 - fresh
 */

const priceProcessor = {
    pre(originPrice) {
        if (originPrice >= 100) {
            return originPrice - 20
        } else {
            return originPrice * 0.9
        }
    },
    onSale(originPrice) {
        if (originPrice >= 100) {
            return originPrice - 30
        } else {
            return originPrice * 0.8
        }
    },
    back(originPrice) {
        if (originPrice >= 200) {
            return originPrice - 50
        } else {
            return originPrice
        }
    },
    fresh(originPrice) {
        return originPrice * 0.5;
    },
}

function rePrice(tag, originPrice) {
    return priceProcessor[tag](originPrice)
}

console.log(rePrice('pre', 120))
console 命令行工具 X clear

                    
>
console