Как поправить код?
Такой код не правят, а переписывают.
Сделаем табличку со скидками:
const discounts = [
{ percent: 0, sum: 0 },
{ percent: 2, sum: 4000 },
{ percent: 3, sum: 10000 },
{ percent: 4, sum: 20000 },
{ percent: 5, sum: 50000 },
];
Получим скидку:
const discount = discounts.reduce((p, c) => c.sum <= pricechange ? c : p);
Посчитаем цену со скидкой:
const discountedPrice = pricechange * (100 - discount.percent) / 100;
UPD. В комментариях было высказано мнение, будто показывать reduce автору вопроса, который вроде как начинающий - типа нехорошо. Слишком сложно? Давайте сделаем проще.
Вместо суммы, на которой начинается действие скидки, будем работать с суммой, на которой скидка действовать перестаёт:
const discounts = [
{ percent: 0, sum: 4000 },
{ percent: 2, sum: 10000 },
{ percent: 3, sum: 20000 },
{ percent: 4, sum: 50000 },
{ percent: 5, sum: Infinity },
];
В этом случае нужная скидка - первая, чья граница превышает проверяемую сумму:
const discount = discounts.find(n => n.sum > pricechange);