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

96
Views
¿Cómo ordenar una matriz de objetos con una condición?
 let array = [ { "vendorBidId": null, "participantName": "test+10@mail.com", "bidAmount": 0, "productionRate": null, "bidTime": null, "isYou": false, "awarded": false }, { "vendorBidId": 16, "participantName": "test+2@mail.com", "bidAmount": 131, "productionRate": 131, "bidTime": "2021-09-18T08:11:21.295", "isYou": true, "awarded": false }, { "vendorBidId": 20, "participantName": "test@mail.com", "bidAmount": 30, "productionRate": 30, "bidTime": "2021-0a-18T08:11:21.295", "isYou": true, "awarded": false }, { "vendorBidId": 30, "participantName": "test@mail.com", "bidAmount": 40, "productionRate": 40, "bidTime": "2021-0a-18T08:11:21.295", "isYou": true, "awarded": false }, { "vendorBidId": null, "participantName": "test+10@mail.com", "bidAmount": 0, "productionRate": null, "bidTime": null, "isYou": false, "awarded": false }, { "vendorBidId": 40, "participantName": "test@mail.com", "bidAmount": 50, "productionRate": 50, "bidTime": "2021-0a-18T08:11:21.295", "isYou": true, "awarded": false } ]

Quiero ordenar esta matriz en orden ascendente (cantidad de la oferta), y si el ID de la oferta del proveedor es nulo, no lo ordene en la parte inferior.

lo intenté así

 array.sort((a,b) => parseFloat(a.bidAmount) - parseFloat(b.bidAmount)).map((ele) => console.log(ele.bidAmount))

Necesito una salida como 30,40,50,131,0,0, pero para mi código anterior solo ordenará. Intenté con reduce pero eso no funciona correctamente

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

array.sort((a,b) => { const n = a.vendorBidId === null ? Number.MAX_VALUE : a.bidAmount; const m = b.vendorBidId === null ? Number.MAX_VALUE : b.bidAmount; return n - m; }); // "2.5" + "3.5" = "2.53.5" // "2.5" - "3.5" = -1
about 4 years ago · Juan Pablo Isaza Report

0

  1. Separe sus matrices en función de que el proveedor BidId sea nulo o no.
  2. Ordenar la parte que desea ordenar
  3. concat la otra matriz.
about 4 years ago · Juan Pablo Isaza Report

0

Sobre la base de lo que DragatS ha compartido... simplemente asigne el resultado de sort() como este para obtener el resultado de [30,40,50,131,0,0]

 const res = array .sort((a, b) => { const n = a.vendorBidId === null ? Number.MAX_VALUE : a.bidAmount; const m = b.vendorBidId === null ? Number.MAX_VALUE : b.bidAmount; return n - m; }) .map(item => item.bidAmount); console.log(res);
about 4 years ago · Juan Pablo Isaza Report
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!