Descubra cómo ordenar una matriz de elementos por valor de fecha en JavaScript
Digamos que tienes una matriz de objetos como ésta, que contiene un conjunto de objetos de fecha :
const activities = [ { title: 'Hiking', date: new Date('2019-06-28') }, { title: 'Shopping', date: new Date('2019-06-10') }, { title: 'Trekking', date: new Date('2019-06-22') }]
Desea ordenar esas actividades por date
propiedad.
Puedes utilizar el sort()
método de Array
, que toma una función de devolución de llamada, que toma como parámetros 2 objetos contenidos en el array (a los que llamamos a
y b
):
const sortedActivities = activities.sort((a, b) = b.date - a.date)
Cuando devolvemos un valor positivo, la función comunica sort()
que el objeto b
tiene prioridad en la clasificación sobre el objeto a
. Si devolvemos un valor negativo, se producirá lo contrario.
El sort()
método devuelve una nueva matriz ordenada, pero también ordena la matriz original en su lugar. Por lo tanto, las matrices sortedActivities
y activities
ahora están ordenadas. Una opción para proteger la matriz original de ser modificada es usar el slice()
método para crear una copia de la matriz antes de ordenarla, de la siguiente manera:
const sortedActivities = activities.slice().sort((a, b) = b.date - a.date)
Tips para principiantes de JavaScript
Tal vez te puede interesar:
- Cómo generar un número aleatorio entre dos números en JavaScript
- Cómo esperar el evento DOM listo en JavaScript simple
- Cómo determinar si una fecha es hoy en JavaScript
- Cómo contar el número de propiedades en un objeto JavaScript
Cómo ordenar una matriz por valor de fecha en JavaScript
Digamos que tienes una matriz de objetos como ésta, que contiene un conjunto de objetos de fecha : Descubra cómo ordenar una matriz de elementos por valor de
programar
es
2025-01-20

Si crees que alguno de los contenidos (texto, imagenes o multimedia) en esta página infringe tus derechos relativos a propiedad intelectual, marcas registradas o cualquier otro de tus derechos, por favor ponte en contacto con nosotros en el mail [email protected] y retiraremos este contenido inmediatamente