Нужна помощь для преобразования формулы Excel в логику Javascript - PullRequest
0 голосов
/ 01 ноября 2018

У меня есть динамическая таблица цен, в которой стоимость за единицу товара изменяется в зависимости от количества выбранных единиц.

см. Изображение таблицы цен Excel

Формула берет первый элемент и умножается на количество, но остальная часть вычисления работает путем добавления числа или цены элементов на основе количества

(1 * 17 = 17),
(17 + 17 = 24),
(17 + 17 + 17 = 51)

У меня была другая формула, написанная на JavaScript, но она не рассчитывается одинаково, поэтому я получаю разные значения.

let itemPrice:number;
let tier1 = 17;
let tier2 = 15;
let tier3 = 13;
let tier4 = 11;
let tier5 = 9;
let tier6 = 7;
let tier7 = 6;


selectDevices(e: MatSliderChange) {
    this.selectedCount.Items = e.value;
    this.itemPrice = this._getItemPrice(e.value);

    this.invoice.itemPriceTotal =
      this.selectedCount.Items * this.itemPrice;

}

private _getItemPrice(items?: number) {
    let itemPrice = this.tier1;
    if (devices < 5) {
     itemPrice = this.tier1;
    }
    if (devices > 4 && devices < 9) {
     itemPrice = this.tier2;
    }
    if (devices > 8 && devices < 13) {
     itemPrice = this.tier3;
    }
    if (devices > 12 && devices < 17) {
     itemPrice = this.tier4;
    }
    if (devices > 16 && devices < 21) {
     itemPrice = this.tier5;
    }
    if (devices > 20 && devices < 25) {
        itemPrice = this.tier6;
    }
    if (devices > 24) {
         itemPrice = this.tier7;
    }
    return itemPrice;
}

Когда ползунок изменяет цену, вычисляется с использованием вышеуказанных функций, но результат отличается, потому что он только умножает количество на цену, но ему нужно вычислить первые 4 по цене уровня 1, следующие 4 по цене уровня 2 + предыдущий 4 по цене 1 уровня. Надеюсь, что это имеет смысл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...