0

我会尽量保持简单,但我正在为我的团队创建一个内部使用计算器来计算我们销售的 T 恤的定价。

https://i.imgur.com/J6AmnbS.png

我们有一个像这样的定价网格。所以我有一个地方可以输入丝网印刷的数量和颜色数量。在没有某种可怕的嵌套 if-then 结构的情况下,我如何干净地存储这些信息以用于我的计算?

我试过一个数组,但我不确定最好的组织方法。

if (parseInt(this.qty, 10) < 36) return
if (parseInt(this.qty, 10) <= 72) return 0.85
if (parseInt(this.qty, 10) <= 144) return 0.75
if (parseInt(this.qty, 10) <= 288) return 0.65

显然,这是一种可怕的方法,但这是可行的。有点。我需要一种在计算中包含颜色数量的好方法,而不会出现这种混乱的 if 语句。

解决这个问题的最佳方法是什么?我什至不需要具体的代码,只是理论上的一个想法。这对我来说是一个学习项目,所以我想自己做,但我不知道从哪里开始。

4

1 回答 1

0

如果是我,我会将键值对存储在定价对象中,其中键是数量价格的上限或下限,值是价格乘数的上限/下限。像这样:

var pricingMap = {36: 1, 72: 0.85, 144: 0.75, 288: 0.65};

function getDiscount(qty){
    for (var upper in pricingMap) {
        if (parseInt(this.qty, 10) < upper)
            return pricingMap[upper];
    }
}

这样,添加更多数量范围和折扣很简单。

于 2019-09-09T22:16:20.967 回答