Ordenar Arreglos con el Método sort()
sort()
El método sort() reorganiza los elementos de un arreglo en su lugar y devuelve el arreglo actualizado. Por defecto, la ordenación funciona bien para cadenas de texto, pero puede comportarse de manera inesperada con números.
Comportamiento de ordenación por defecto
La ordenación por defecto se realiza sin inconvenientes en arreglos de cadenas de texto, pero los arreglos numéricos pueden presentar desafíos. A continuación, se muestran 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 ilustración siguiente:
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 generar 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 Ordenación Personalizadas
Para adaptar la ordenación a necesidades específicas, se utiliza una función de devolución de llamada. Esta función, a menudo llamada función de comparación, determina la lógica de ordenación. Exploremos la ordenación personalizada tanto para números como para cadenas. 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 los órdenes 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
Genial!
Completion tasa mejorada a 2.27
Ordenar Arreglos con el Método sort()
Desliza para mostrar el menú
sort()
El método sort() reorganiza los elementos de un arreglo en su lugar y devuelve el arreglo actualizado. Por defecto, la ordenación funciona bien para cadenas de texto, pero puede comportarse de manera inesperada con números.
Comportamiento de ordenación por defecto
La ordenación por defecto se realiza sin inconvenientes en arreglos de cadenas de texto, pero los arreglos numéricos pueden presentar desafíos. A continuación, se muestran 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 ilustración siguiente:
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 generar 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 Ordenación Personalizadas
Para adaptar la ordenación a necesidades específicas, se utiliza una función de devolución de llamada. Esta función, a menudo llamada función de comparación, determina la lógica de ordenación. Exploremos la ordenación personalizada tanto para números como para cadenas. 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 los órdenes 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!