涉及多个方面的数据计算的最佳方法是什么?

时间:2019-09-09 22:00:13

标签: javascript vue.js

我会尽量保持简单,但是我正在为我的团队创建一个内部使用计算器,以计算出我们出售的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语句。

执行此操作的最佳方法是什么?我什至不需要特定的代码,只是一个理论上的想法。对我来说这是一个学习项目,所以我想自己做,但是我不确定从哪里开始。

1 个答案:

答案 0 :(得分: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];
    }
}

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