Hierumo
09.Сентябрь.2019 08:27:31
21
нет, не верно. js ничего сам не дописывает, он условно тупенький
последовательные if это несколько разных проверок
конструкция с else if - это одна большая проверка
с точки зрения архитектуры построения кода, одно требование - одна проверка
конкретно тут требование - установить скидку в зависимости от одного изменяемого параметра - суммы заказа
например, вот если бы скидка устанавливалась от разных параметров, допустим, зеленые товары продаем с доп скидкой 15% - тогда бы вы вводили дополнительную проверку на то, что товар зеленый.
а в конце бы просто складывали скидки и умножали на сумму заказа.
1 лайк
var buy = 4000;
var discountedBuy;
if (1000 <= buy && buy < 3000 ) {
discountedBuy = (buy/100*95);
console.log(discountedBuy);
}
if (3000 <= buy && buy < 5000 ) {
discountedBuy = (buy/100*90);
}
if (5000 <= buy) {
discountedBuy = (buy/100*85);
}
if (buy < 1000 ) {
discountedBuy = buy;
}
Мой вариант.
var buy = 4000;
var discountedBuy;
if(buy >= 1000){
if(buy >= 1000 && buy < 3000){
discountedBuy = buy - (buy * 0.05);
}
if(buy >= 3000 && buy < 5000){
discountedBuy = buy - (buy * 0.1);
}
if(buy >= 5000){
discountedBuy = buy - (buy * 0.15);
}
}else{
discountedBuy = buy;
}
var buy = 4000;
var discountedBuy;
(buy >= 1000 && buy < 3000) ? discountedBuy = buy * 0.95:
(buy >= 3000 && buy < 5000) ? discountedBuy = buy * 0.9:
(buy >= 5000) ? discountedBuy = buy * 0.85:
discountedBuy = buy;
1 лайк
var buy = 4000;
var discountedBuy;
discountedBuy = buy;
if (buy >= 1000 && buy < 3000) {
discountedBuy = buy * (5 / 100);
discountedBuy = buy - discountedBuy;
}
if (buy >= 3000 && buy < 5000) {
discountedBuy = buy * (10 / 100);
discountedBuy = buy - discountedBuy;
}
if (buy >= 5000) {
discountedBuy = buy * (15 / 100);
discountedBuy = buy - discountedBuy;
}
let price = 4000;
let discountedPrice;
if (price >= 1000 && price < 3000) {
discountedPrice = price * (5 / 100);
discountedPrice = price - discountedPrice;
} else if (price >= 3000 && price < 5000) {
discountedPrice = price * (10 / 100);
discountedPrice = price - discountedPrice;
} else if (price >= 5000) {
discountedPrice = price * (15 / 100);
discountedPrice = price - discountedPrice;
} else {
discountedPrice = price;
}
ValWolf
25.Сентябрь.2022 13:33:07
28
let price = 4000;
let discountedPrice;
if ( price >= 1000 && price < 3000) {
discountedPrice = price * ( 5 / 100)
discountedPrice = price - discountedPrice;
}
if ( price >= 3000 && price < 5000) {
discountedPrice = price * ( 10 / 100)
discountedPrice = price - discountedPrice;
}
if ( price >= 5000 ) {
discountedPrice = price * ( 15 / 100)
discountedPrice = price - discountedPrice;
}
if ( price < 1000 ) {
discountedPrice = price
}
let price = 2000;
let discountedPrice;
if (price >= 1000 && price < 3000) {
discountedPrice = (price - (price *= 0.05));
} else if (price >= 3000 && price < 5000) {
discountedPrice = (price - (price *= 0.1));
} else if (price >= 5000) {
discountedPrice = (price - (price *= 0.15));
} else {
discountedPrice = price;
}
ещё пара вариантов
let price = 4000;
let discountedPrice =
(price >= 1000 && price < 3000) ? price - (price * 0.05) :
(price >= 3000 && price < 5000) ? price - (price * 0.1):
(price >= 5000) ? price - (price * 0.15):
price;
// По мне, так в данном случае, этот вариант, более читаемый.
// Да и switch лучше читается чем if else.
let price = 4000;
let discountedPrice;
switch (true) {
case price >= 1000 && price < 3000 :
discountedPrice = price - (price * 0.05);
break;
case price >= 3000 && price < 5000 :
discountedPrice = price - (price * 0.1);
break;
case price >= 5000 :
discountedPrice = price - (price * 0.15);
break;
default: discountedPrice = price;
}
1 лайк
let price = 4000;
let discountedPrice;
discountedPrice = (price >= 1000 && price < 3000) ? price - (price / 100 * 5):
(price >= 3000 && price < 5000) ? price - (price / 100 * 10):
(price >= 5000) ? price - (price / 100 * 15):
price;
100%
можно ведь проще
let price = 4000;
let discountedPrice = (price >= 5000) ? 0.85*price :
(price >= 3000) ? 0.9*price :
(price >= 1000) ? 0.95*price :
price;