Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

211
Visualizações
Develop a decreasing price function by step

I'm trying to configure my price list. The price unit must decrease depending the quantity you buy but should keep growing.

I was able to do it in excel, but now I would like to do a function in javascript.

my pricelist in the DB is like this:

min max price
1   9   50
10  19  45
20  29  40
30  49  35
50  79  30
80  90  25

The function depending the price is

qty price function
1-9 qty*50
10-19 (qty-9)*45+(9*50)
20-29 (qty-19)*40+(19*45)
...
80-90 (qty-79)*25+(79*30)

I would like to create a ES6 function that receive the quantity in parameter and return the total price.

UPDATE I was able to create the function but I'm pretty sure that we can improve it.

let priceList= [
{"_id":1,"min":1,"max":9,"price":50},
{"_id":2,"min":10,"max":19,"price":45},
{"_id":3,"min":20,"max":29,"price":40},
{"_id":4,"min":30,"max":49,"price":35},
{"_id":5,"min":50,"max":79,"price":30},
{"_id":6,"min":80,"max":90,"price":25}
]

function sum(qty){
  let sum = 0;
  let prices = priceList.filter((x)=>x.min<=qty);
  var price;
  var priceArr=[];
  const pricesLength = prices.length;
  for (let i = 0; i < pricesLength ; i++) {
    price = prices[i];
    if(i==0){
        priceArr.push(price.price * ((price.max < qty) ? price.max : qty));
    } else {
        priceArr.push(price.price * ((price.max <= qty) ? price.max - price.min + 1 : qty - price.min + 1) + priceArr[i-1]);
    }
  }
  return priceArr[pricesLength-1];

} 

https://jsfiddle.net/jm7teuqb/1/

about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda