Ordenar Arreglos con el Método sort()
Este capítulo explora las complejidades del método sort(), incluyendo su sintaxis, comportamientos predeterminados y técnicas de ordenamiento personalizadas.
sort()
El método sort() modifica el arreglo original, dotándolo de una nueva disposición.
Características clave a recordar:
- El arreglo original se transforma, encontrando sus elementos en una nueva disposición;
- El método proporciona un arreglo modificado como valor de retorno, permitiendo una exploración adicional;
- Por defecto, el método sort() organiza los elementos en orden ascendente.
Comportamiento de ordenación predeterminado
La ordenación predeterminada funciona sin problemas para arreglos de cadenas, pero los arreglos numéricos pueden presentar desafíos. Examinemos algunos ejemplos para ilustrar este comportamiento:
123const numbers = [51, 12, 43, 24, 65, 36]; numbers.sort(); console.log(numbers); // Output: 12, 24, 36, 43, 51, 65
En este ejemplo, el arreglo de números se ordena en orden ascendente, lo que parece sencillo. Sin embargo, surgen matices en la siguiente ilustración:
123const numbers = [34, 25, 19, 1, 92, 2, 3]; numbers.sort(); console.log(numbers); // Output: 1, 19, 2, 25, 3, 34, 92
El método sort() trata los elementos como cadenas de texto por defecto, lo que puede producir resultados inesperados. Por ejemplo, 19 se ordena antes que 2, y 25 antes que 3. La solución consiste en personalizar el proceso de ordenamiento.
Órdenes de ordenamiento personalizados
Para adaptar el ordenamiento a necesidades específicas, se utiliza una función de devolución de llamada. Esta función, comúnmente llamada función de comparación, define la lógica de ordenamiento. A continuación, se explora el ordenamiento personalizado tanto para números como para cadenas de texto. Sintaxis básica:
array.sort((a, b) => {
// Callback body
});
ase considera como el primer elemento;bse considera como el segundo elemento.
Ordenar números
En este caso, la función de comparación determina el orden ascendente y descendente según la relación entre los elementos a y b.
1234567const numbers = [34, 25, 19, 1, 92, 2, 3]; const ascendingNumbers = [...numbers].sort((a, b) => a - b); console.log(ascendingNumbers); // Output: 1, 2, 3, 19, 25, 34, 92 const descendingNumbers = [...numbers].sort((a, b) => b - a); console.log(descendingNumbers); // Output: 92, 34, 25, 19, 3, 2, 1
Ordenar cadenas
El método localeCompare() facilita la ordenación alfabética, permitiendo la personalización tanto para órdenes ascendentes como descendentes.
1234567const employees = ["Antonia", "Rene", "Casey", "Lorraine", "Shelia"]; const inAlphabetOrder = [...employees].sort((a, b) => a.localeCompare(b)); console.log(inAlphabetOrder); // Antonia, Casey, Lorraine, Rene, Shelia const inReversedOrder = [...employees].sort((a, b) => b.localeCompare(a)); console.log(inReversedOrder); // Shelia, Rene, Lorraine, Casey, Antonia
1. ¿Cuál es una característica clave del método sort()?
2. En el comportamiento de ordenación predeterminado del método sort(), ¿cómo trata los elementos?
3. En el siguiente ejemplo, ¿cuál será la salida?
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Can you explain why the default sort method treats numbers as strings?
How do I use a custom compare function for more complex sorting?
Can you show more examples of sorting arrays with objects?
Awesome!
Completion rate improved to 2.27
Ordenar Arreglos con el Método sort()
Desliza para mostrar el menú
Este capítulo explora las complejidades del método sort(), incluyendo su sintaxis, comportamientos predeterminados y técnicas de ordenamiento personalizadas.
sort()
El método sort() modifica el arreglo original, dotándolo de una nueva disposición.
Características clave a recordar:
- El arreglo original se transforma, encontrando sus elementos en una nueva disposición;
- El método proporciona un arreglo modificado como valor de retorno, permitiendo una exploración adicional;
- Por defecto, el método sort() organiza los elementos en orden ascendente.
Comportamiento de ordenación predeterminado
La ordenación predeterminada funciona sin problemas para arreglos de cadenas, pero los arreglos numéricos pueden presentar desafíos. Examinemos algunos ejemplos para ilustrar este comportamiento:
123const numbers = [51, 12, 43, 24, 65, 36]; numbers.sort(); console.log(numbers); // Output: 12, 24, 36, 43, 51, 65
En este ejemplo, el arreglo de números se ordena en orden ascendente, lo que parece sencillo. Sin embargo, surgen matices en la siguiente ilustración:
123const numbers = [34, 25, 19, 1, 92, 2, 3]; numbers.sort(); console.log(numbers); // Output: 1, 19, 2, 25, 3, 34, 92
El método sort() trata los elementos como cadenas de texto por defecto, lo que puede producir resultados inesperados. Por ejemplo, 19 se ordena antes que 2, y 25 antes que 3. La solución consiste en personalizar el proceso de ordenamiento.
Órdenes de ordenamiento personalizados
Para adaptar el ordenamiento a necesidades específicas, se utiliza una función de devolución de llamada. Esta función, comúnmente llamada función de comparación, define la lógica de ordenamiento. A continuación, se explora el ordenamiento personalizado tanto para números como para cadenas de texto. Sintaxis básica:
array.sort((a, b) => {
// Callback body
});
ase considera como el primer elemento;bse considera como el segundo elemento.
Ordenar números
En este caso, la función de comparación determina el orden ascendente y descendente según la relación entre los elementos a y b.
1234567const numbers = [34, 25, 19, 1, 92, 2, 3]; const ascendingNumbers = [...numbers].sort((a, b) => a - b); console.log(ascendingNumbers); // Output: 1, 2, 3, 19, 25, 34, 92 const descendingNumbers = [...numbers].sort((a, b) => b - a); console.log(descendingNumbers); // Output: 92, 34, 25, 19, 3, 2, 1
Ordenar cadenas
El método localeCompare() facilita la ordenación alfabética, permitiendo la personalización tanto para órdenes ascendentes como descendentes.
1234567const employees = ["Antonia", "Rene", "Casey", "Lorraine", "Shelia"]; const inAlphabetOrder = [...employees].sort((a, b) => a.localeCompare(b)); console.log(inAlphabetOrder); // Antonia, Casey, Lorraine, Rene, Shelia const inReversedOrder = [...employees].sort((a, b) => b.localeCompare(a)); console.log(inReversedOrder); // Shelia, Rene, Lorraine, Casey, Antonia
1. ¿Cuál es una característica clave del método sort()?
2. En el comportamiento de ordenación predeterminado del método sort(), ¿cómo trata los elementos?
3. En el siguiente ejemplo, ¿cuál será la salida?
¡Gracias por tus comentarios!