Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+3

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

Подскажите, пожалуйста, как правильно написать чтобы показывало нужный процент скидки. "10 % от суммы покупки на бонусный счёт, но если у клиента на счету больше 5000 бонусных баллов, то начисляем 20 % от суммы. Дополнительно мы добавляем 5 % к начислению, если это не первая покупка в этом месяце." В теории выглядит так: 1) В первом условии базовое значение (не учитывая номер покупки, а только количество бонусов). Либо значение переменной 10%, либо значение переменной с 20%. if(проверка баланса){
// присвоить 10;
} else {
// присвоить 20;
} 2) дополнительный процент +5, если покупок больше одной. if(не первая покупка) {
// увеличить предыдущее значение на 5;
} Как пишу:

1234567891011121314
 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("Процент от покупки:" + .........); 
} 
По дате
По рейтингу
Аватар пользователя
Мудрец
7мес

Ваш алгоритм можно улучшить, чтобы корректно учитывать все условия. Вот как можно переписать его для определения итогового процента с учётом бонусного счёта и количества покупок:

12345678910111213141516171819
 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:

12
 let bonus = 6000; // Бонусы 
let lotBuy = 1; // Количество покупок  

bonus>=5000: итоговый процент = 20%.
lotbuy = 1: дополнительных 5% не прибавляется.
Результат: Процент от покупки: 20.

Пример 2:

12
 let bonus = 3000; // Бонусы 
let lotBuy = 3; // Количество покупок  

bonus<5000: базовый процент = 10%.
LostBuy: > 1: прибавляется 5%.
Результат: Процент от покупки: 15.

Этот код учитывает оба условия, а итоговый процент легко расширить при необходимости добавления новых правил.

Аватар пользователя
Просветленный
7мес

В вашем коде нужно объединить логику расчета процентов в одну переменную, чтобы избежать дублирования кода. Затем, если это не первая покупка, мы можем увеличить это значение на 5%. Вот как это можно сделать:

12345678910111213141516171819202122
 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 + "%");