0

私は現在、ユーザーが目的地までのマイレージと目的地からのマイレージを入力する経費フォームを開発しています。

マイレージ バンドの料金表があります。たとえば、0 ~ 10 マイルで 1 回につき 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 に答える