Творческий доход

нет, не верно. 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;

if (buy >= 1000 && buy < 3000) {
discountedBuy = buy - (buy * 0.05);
} else if (buy >= 3000 && buy < 5000) {
discountedBuy = buy - (buy * 0.1);
} else if (buy >= 5000) {
discountedBuy = buy - (buy * 0.15);
}
else {
discountedBuy = buy;
}

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;
}

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;