по сути дела код работал, но в подсчете стоимости корзины не учитываются предыдущие скидки, так как берётся только начальная стоимость корзины, а надо учитывать стоимость корзины с применением скидок, вот как это исправить?
Код вроде отформатировал..
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"));