Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

219
Views
Desarrolle una función de precio decreciente paso a paso

Estoy tratando de configurar mi lista de precios. La unidad de precio debe disminuir dependiendo de la cantidad que compre, pero debe seguir creciendo.

Pude hacerlo en excel, pero ahora me gustaría hacer una función en javascript.

mi lista de precios en la base de datos es así:

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

La función dependiendo del precio es

 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)

Me gustaría crear una función ES6 que reciba la cantidad en el parámetro y devuelva el precio total.

ACTUALIZAR Pude crear la función, pero estoy bastante seguro de que podemos mejorarla.

 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
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!