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

480
Views
Ordenar el estado (matriz de objetos) por fecha en React

Digamos que le dan una serie de objetos en su estado React, como este:

 [ { "id": "…", "title": "Brief history of Space Shuttle program", "date": "2016-10-29 19:00:00+01:00", "venue": "NASA History Museum" }, { "id": "…", "title": "Why did the Challenger explode?", "date": "2016-11-31 18:30:00+01:00", "venue": "Albert II Library Building" } ]

Ahora desea ordenar esto por fecha, digamos que tiene un foro o algo similar, donde la primera publicación debe ser la más reciente según la fecha.

¿Cómo lo ordenarías? Este fue mi intento:

 function sortExample (dataToSort) { let test = [...dataToSort]; test.sort((a,b) => new Date(a.date) - new Date(b.date) }

Desafortunadamente, eso no funcionó del todo bien. Y lo más importante, ¿dónde colocaría esta función? Lo puse en mi useEffect , eso tampoco pareció funcionar para mí.

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

0

Tienes dos opciones:

  1. Ordenarlo antes de establecer Estado, esto se recomienda si solo necesita los datos en este orden en todas partes.
  2. Ordenarlo donde usa los datos pero mantener los datos originales tal como están en el estado.

Digamos que tenemos:

 const [dataInState, setDataInState] = useState([]);

El primero:

 useEffect(() => { fetch("/data") .then(res => res.json()) .then(json => setDataInState(json.sort(myCompareFunc)) }, [])

Segundo:

Establezca el estado como de costumbre, luego en el cuerpo del componente, antes de regresar:

 const sortedData = [...dataInState].sort(myCompareFunc)

Ahora puede usar sortedData en JSX o en cualquier otro lugar.

Recomiendo el primero por razones de rendimiento.

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!