


Javascript как правильно сослаться на предыдущее значение
Подскажите, пожалуйста, как правильно написать чтобы показывало нужный процент скидки. "10 % от суммы покупки на бонусный счёт, но если у клиента на счету больше 5000 бонусных баллов, то начисляем 20 % от суммы. Дополнительно мы добавляем 5 % к начислению, если это не первая покупка в этом месяце." В теории выглядит так: 1) В первом условии базовое значение (не учитывая номер покупки, а только количество бонусов). Либо значение переменной 10%, либо значение переменной с 20%. if(проверка баланса){
// присвоить 10;
} else {
// присвоить 20;
} 2) дополнительный процент +5, если покупок больше одной. if(не первая покупка) {
// увеличить предыдущее значение на 5;
} Как пишу:
let bonus=3000; //Бонусы
let lotBuy=2; //кол-во покупок
let nornalProsent=10; //стандартного размера начисления в процентах - 10
let bigProsent=20; //повышенного размера начисления в процентах - 20
if (bonus >= 5000) {
console.log("Процент от покупки:" + bigProsent);
} else {
console.log("Процент от покупки:" + nornalProsent)
}
if (lotBuy > 1) {
let ............. ;
console.log("Процент от покупки:" + .........);
}
Ваш алгоритм можно улучшить, чтобы корректно учитывать все условия. Вот как можно переписать его для определения итогового процента с учётом бонусного счёта и количества покупок:
let bonus = 3000; // Бонусы
let lotBuy = 2; // Количество покупок
let normalProsent = 10; // Стандартный размер начисления в процентах
let bigProsent = 20; // Повышенный размер начисления в процентах
let finalProsent; // Итоговый процент начисления
// 1. Определяем базовый процент начисления
if (bonus >= 5000) {
finalProsent = bigProsent; // Если бонусы больше или равны 5000, используем 20%
} else {
finalProsent = normalProsent; // В остальных случаях — 10%
}
// 2. Добавляем дополнительный процент, если это не первая покупка
if (lotBuy > 1) {
finalProsent += 5; // Увеличиваем итоговый процент на 5
}
console.log("Процент от покупки: " + finalProsent);
Как это работает:
Шаг 1. Определение базового процента:
Проверяется, сколько бонусных баллов у клиента.
Если на счету
≥
5000
≥5000, берётся базовый процент 20%, иначе — 10%.
Шаг 2. Увеличение процента, если покупок больше одной:
Проверяется, больше ли одной покупок. Если да, то к уже вычисленному проценту прибавляется 5%.
Результат:
Выводится итоговый процент.
Пример работы:
Пример 1:
let bonus = 6000; // Бонусы
let lotBuy = 1; // Количество покупок
bonus>=5000: итоговый процент = 20%.
lotbuy = 1: дополнительных 5% не прибавляется.
Результат: Процент от покупки: 20.
Пример 2:
let bonus = 3000; // Бонусы
let lotBuy = 3; // Количество покупок
bonus<5000: базовый процент = 10%.
LostBuy: > 1: прибавляется 5%.
Результат: Процент от покупки: 15.
Этот код учитывает оба условия, а итоговый процент легко расширить при необходимости добавления новых правил.
В вашем коде нужно объединить логику расчета процентов в одну переменную, чтобы избежать дублирования кода. Затем, если это не первая покупка, мы можем увеличить это значение на 5%. Вот как это можно сделать:
let bonus = 3000; // Бонусы
let lotBuy = 2; // Количество покупок
let normalPercent = 10; // Стандартный процент - 10%
let bigPercent = 20; // Повышенный процент - 20%
// Переменная для хранения итогового процента
let finalPercent;
// Устанавливаем базовый процент в зависимости от количества бонусов
if (bonus >= 5000) {
finalPercent = bigPercent;
} else {
finalPercent = normalPercent;
}
// Если это не первая покупка, добавляем 5%
if (lotBuy > 1) {
finalPercent += 5;
}
// Выводим итоговый процент
console.log("Процент от покупки: " + finalPercent + "%");