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

253
Visualizações
Javascript: ordena la matriz de objetos por fecha de propiedad

Tengo la siguiente respuesta de un servicio:

 const arrDate = [ { "id":1, "birthDate":"2022-06-30T14:38:28.003" }, { "id":2, "birthDate":"2022-06-30T14:36:48.50" }, { "id":3, "birthDate":"2022-06-30T14:35:40.57" }, { "id":4, "birthDate":"2022-06-30T13:09:58.451" }, { "id":5, "birthDate":"2022-06-30T14:11:27.647" }, { "id":6, "birthDate":"2022-06-30T14:55:41.41" }, { "id":7, "birthDate":"2022-02-22T11:55:33.456" } ]

Para ordenarlo por fecha hago lo siguiente:

 const sortDate = arrDate.sort(function(a, b) { return new Date(a.birthDate) > new Date(b.birthDate); });

Pero el valor de "sortDate" no es correcto:

 [ { "birthDate":"2022-06-30T14:38:28.003", "id":1 }, { "birthDate":"2022-06-30T14:36:48.50", "id":2 }, { "birthDate":"2022-06-30T14:35:40.57", "id":3 }, { "birthDate":"2022-06-30T13:09:58.451", "id":4 }, { "birthDate":"2022-06-30T14:11:27.647", "id":5 }, { "birthDate":"2022-06-30T14:55:41.41", "id":6 }, { "id":7, "birthDate":"2022-02-22T11:55:33.456" } ]

Debiera ser:

 [ { "birthDate":"2022-06-30T14:55:41.41", "id":6 }, { "birthDate":"2022-06-30T14:38:28.003", "id":1 }, { "birthDate":"2022-06-30T14:36:48.50", "id":2 }, { "birthDate":"2022-06-30T14:35:40.57", "id":3 }, { "birthDate":"2022-06-30T14:11:27.647", "id":5 }, { "birthDate":"2022-06-30T13:09:58.451", "id":4 }, { "id":7, "birthDate":"2022-02-22T11:55:33.456" } ]

como puedo solucionarlo gracias

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

El problema es que se supone que la función de comparación devuelve un número positivo si a debe estar después de b, negativo si b debe estar después de a y cero si deben mantener el mismo orden. Su función devuelve verdadero y falso, JS convierte verdadero en 1 y falso en cero. Eso significa que nunca le estás diciendo a sort que ponga b después de a.

hacer que la función regrese

 return new Date(a.birthDate) > new Date(b.birthDate) ? -1 : 1; // copied from a comment
about 4 years ago · Juan Pablo Isaza Relatório

0

ascendente

return new Date(a.birthDate) - new Date(b.birthDate);

descendiendo

return new Date(b.birthDate) - new Date(a.birthDate);

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