0

潜在的なバイヤーが購入したいアイテムの数に基づいて価格を計算できるようにする方法を探しています。

私の商品の単価は数量に応じて下がります。

たとえば、1 ~ 500 ユニットの場合、製品の価格は 20 ドルです
。500 ~ 1000 の場合、価格は 17 ドルです
。1000 ~ 5000 の場合、価格は 13 ドルです。

価格を計算するスクリプトを見つけましたが、それは「線形」の方法で行われます。
たとえば、これのように
またはこれ

これらのスクリプトを調整して、スライダーの「ブレークポイント」で価格を計算することは可能ですか?
0 から 500 までの合計価格は = 20$ x アイテム数
500 から 1000 まで 合計価格は = 17$ x アイテム数など…</p>

どうもありがとう

ps : ご想像のとおり、私には基本的なプログラミング スキルがあります。

4

2 に答える 2

1

おそらく、次のようなデータ構造が必要です。

products = {
    7: {
        id: 7,
        title: "My Product",
        // note that the prices are in increasing order of minimum threshold
        // for quantity (i.e. 0 for 0-500, THEN 500 for 500-1000 THEN
        // 1000 for 1000-5000, etc., in that order)
        price: {
            0: 20,
            500: 17,
            1000: 13
        }
    },
    10: {
        id: 10,
        title: "My Other Product",
        price: {
            0: 50,
            500: 45,
            1000: 40
        }
    },
    ...
}

次に、製品 X (つまり、id = X) と数量 Q の価格を計算するには:

var correctPrice = -1;
for (var threshold in products[X].price) {
    if (Q >= threshold)
        correctPrice = products[X].price[threshold];
}

if (correctPrice > -1)
    // use correctPrice here

これを使用すると、任意の数量のしきい値と価格を持つ任意の数の製品を取得し、プログラムで正しい価格を使用して計算できます。

于 2013-09-18T18:42:19.903 に答える
0

これで問題が解決するはずです。

// quantity segment, price
var priceRanges = [500,20,
                   1000,17,
                   5000,13];

//the function returns the unit price for a given quantity or -1 if out of range.
function getPrice(quantity){
   for (var i = priceRanges.length - 2 ; i >= 0 ; i-=2){
      if (quantity < priceRanges[i]) return priceRanges[i+1];
   }
   return -1;
}
于 2013-09-18T18:38:32.713 に答える