0

我目前正在开发一种费用表格,用户将在其中输入他们到目的地的里程以及他们从目的地的里程。

有一个里程段关税,例如: 0-10 英里的单次免税额为 20 英镑 11-20 英里的免税额为 30 英镑 21-30 英里的免税额为 40 英镑等

这个比率每年都会改变,所以我创建了一个表格,其中包含 rangeFrom 和 rangeTo 字段以及津贴总额,以便可以维护它们。

我正在苦苦挣扎的是找出用户应该为他们的旅程支付多少费用的最佳方式。例如,如果他们行驶 24 英里到达目的地,那么他们应该得到 20 英镑的津贴,但我该如何计算。

我是否从表中循环查询集,为每个里程带创建一个隐藏的表单值,然后尝试找出输入的值属于哪个带,或者是否有替代方法?

4

1 回答 1

1

我会使用一个简单的数组作为查找

var allowanceMapping = [
    {
       range: {low: 0, high: 10},
       allowance: 20
    }, {
       range: {low: 11, high: 20},
       allowance: 21
    }
];

然后,给定里程,只需循环遍历 range.low 和 range.high 上比较的键......

var given;
for (vari = 0; i < allowanceMapping.length; i++) {
    var current = allowanceMapping[i];
    if (given >= current.range.low && given < current.range.high) return current.allowance;
}
于 2013-03-28T16:26:50.767 回答