Ordenando Array de Objetos usando sort() 📊
Si ya has necesitado ordenar un Array de Objetos, seguramente ya has oído hablar del método sort(). ¿Pero sabías que es posible personalizar el ordenamiento según tus necesidades?
El método sort() acepta como parámetro opcional una función de comparación, que define el criterio de ordenamiento de los elementos del Array. Esta función recibe dos parámetros, que representan dos elementos del Array a comparar, y debe retornar un número negativo si el primer elemento es menor que el segundo, un número positivo si el segundo es menor que el primero, y cero si ambos son iguales.
Por ejemplo, imagina que tienes un Array de Objetos que representa una lista de alumnos, y cada Objeto tiene dos propiedades: "nombre" y "nota". Para ordenar esta lista por orden alfabético de nombre, puedes usar el método sort() con la siguiente función de comparación:
listaAlumnos.sort((alumnoA, alumnoB) => {
if (alumnoA.nombre < alumnoB.nombre) {
return -1;
} else if (alumnoA.nombre > alumnoB.nombre) {
return 1;
} else {
return 0;
}
});En este ejemplo, la función de comparación verifica si el nombre del alumnoA es menor que el nombre del alumnoB. Si lo es, retorna -1. Si es mayor, retorna 1. Si son iguales, retorna 0. Con esta función, el método sort() ordena la lista de alumnos por orden alfabético de nombre.
¿Pero y si quisieras ordenar la lista por orden descendente de nota? Basta cambiar la función de comparación:
listaAlumnos.sort((alumnoA, alumnoB) => alumnoB.nota - alumnoA.nota);En este caso, la función de comparación resta la nota del alumnoB por la nota del alumnoA, lo que resulta en un número positivo si la nota del alumnoB es mayor que la del alumnoA, y un número negativo si es menor. Con esta función, el método sort() ordena la lista de alumnos por orden descendente de nota.
Vale recordar que el método sort() modifica el Array original, y no crea una copia ordenada. Si quieres mantener el Array original intacto, es necesario crear una copia antes de ordenarlo.
¿Y qué tal, te gustó aprender más sobre el método sort()? ¿Ya lo has usado para ordenar Arrays de Objetos? Si tienes alguna duda, solo pregunta en mi caja de preguntas de Instagram, que estoy ahí para ayudar.

