Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Javascript как правильно сослаться на предыдущее значение

василина минакова Ученик (188), открыт 3 часа назад
Подскажите, пожалуйста, как правильно написать чтобы показывало нужный процент скидки. "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("Процент от покупки:" + .........);
}
2 ответа
Анонимус Мудрец (14985) 3 часа назад
В вашем коде нужно объединить логику расчета процентов в одну переменную, чтобы избежать дублирования кода. Затем, если это не первая покупка, мы можем увеличить это значение на 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 + "%");
василина минаковаУченик (188) 3 часа назад
спасибо)) когда смотришь на ответ сразу понимаешь как ступила)))
Беспрекословный Эксперт Мыслитель (6688) 3 часа назад
Ваш алгоритм можно улучшить, чтобы корректно учитывать все условия. Вот как можно переписать его для определения итогового процента с учётом бонусного счёта и количества покупок:
 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.

Этот код учитывает оба условия, а итоговый процент легко расширить при необходимости добавления новых правил.
василина минаковаУченик (188) 3 часа назад
спасибо))
Беспрекословный Эксперт Мыслитель (6688) василина минакова, Обращайтесь Василиса, буду рад помочь)
Похожие вопросы