Показать сообщение отдельно
  #4 (permalink)  
Старый 24.10.2021, 20:15
Аспирант
Отправить личное сообщение для TomWalbridge Посмотреть профиль Найти все сообщения от TomWalbridge
 
Регистрация: 24.10.2021
Сообщений: 31

по сути дела код работал, но в подсчете стоимости корзины не учитываются предыдущие скидки, так как берётся только начальная стоимость корзины, а надо учитывать стоимость корзины с применением скидок, вот как это исправить?
Код вроде отформатировал..
function cart(basketAmount, countGoods, promo = null) {
02
            let discountAmount = 0;
03
            let rules = [
04
                () => {
05
                    if (promo === "ДАРИМ300") discountAmount += 300;
06
                },
07
                () => {
08
                    if (countGoods >= 10) discountAmount += basketAmount * .05;
09
                },
10
                () => {
11
                    if (basketAmount > 50000) discountAmount += (basketAmount - 50000) * 0.2;
12
                },
13
                () => {
14
                    if (promo === "СКИДКА15" && basketAmount >= 20000) discountAmount += basketAmount * 0.15;
15
                }
16
            ];
17
            for (let f of rules) f();
18
            let result = Math.max(0, basketAmount - discountAmount);
19
            return result;
20
        }
21
 
22
        console.log(cart(80000, 20, "СКИДКА15"));
Ответить с цитированием