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

105
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
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