El método Sort
Parte de la sección Lógica y Flujo del Journey de JavaScript de Coddy — lección 57 de 65.
El método sort() le permite ordenar los elementos de un array en su lugar y devuelve el array ordenado. Por defecto, ordena los elementos como cadenas en orden alfabético y ascendente.
Aquí está la sintaxis básica:
array.sort([compareFunction])Ejemplo sin usar la función de comparación:
const fruits = ['banana', 'apple', 'orange', 'mango'];
fruits.sort();
console.log(fruits);
// ['apple', 'banana', 'mango', 'orange']ADVERTENCIA: Los números no se ordenan como se espera sin una función de comparación:
const numbers = [1, 30, 4, 21, 100000];
numbers.sort();
console.log(numbers);
// [1, 100000, 21, 30, 4] (ordenación numérica incorrecta)Para ordenar números correctamente o implementar un ordenamiento personalizado, necesitas usar una función de comparación.
La función de comparación debe devolver:
- Un valor negativo si a debe ir antes que b
- Un valor positivo si b debe ir antes que a
- Cero si son iguales
Aquí tienes cómo ordenarías números usando una función de comparación:
// Orden ascendente
const numbers = [1, 30, 4, 21, 100000];
numbers.sort((a, b) => a - b);
console.log(numbers); // [1, 4, 21, 30, 100000]// Orden descendente
numbers.sort((a, b) => b - a);
console.log(numbers); // [100000, 30, 21, 4, 1]Otro ejemplo de cómo ordenar objetos:
const people = [
{ name: 'John', age: 30 },
{ name: 'Alice', age: 25 },
{ name: 'Bob', age: 35 }
];
// Sort by age (ascending)
people.sort((a, b) => a.age - b.age);// Ordenar por nombre (alfabéticamente usar localeCompare())
people.sort((a, b) => a.name.localeCompare(b.name));Desafío
FácilCrea una función llamada sortByLength que reciba un array de cadenas y devuelva un nuevo array con las mismas cadenas ordenadas por su longitud en orden ascendente. Si dos cadenas tienen la misma longitud, deben ordenarse alfabéticamente.
Pruébalo tú mismo
function sortByLength(arr) {
return arr.sort((a, b) => {
// Escribe el código aquí
})
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Lógica y Flujo
1Strings en profundidad
Fundamentos de stringsIterar sobre stringsTemplate LiteralsMétodos de stringsResumen - String Weaver4JSON Parte 2
Iterar sobre JSONJSON anidadoEncadenamiento opcional en JSONCopia superficial y profundaResumen - Tienda de bicicletasResumen - Sistema solar7Sistema de Gestión de Biblioteca
Descripción general del proyectoAñadir libros10Gestionar el sistema del festival
Descripción general del proyectoAñadir películas y sedes2Arreglos multidimensionales
Conceptos básicos de arreglos 2DAcceso a elementos de arreglos 2DBucles anidados con arreglos 2DResumen - Arreglos 2DSuma y resta de matricesArreglos irregulares (Jagged Arrays)Arreglos 3D y más alláPatrones comunes en arreglos 2DResumen - Todo sobre arreglos5Conjuntos Parte 1
¿Qué es un conjunto?Iterar sobre conjuntosAñadir un elementoEliminar un elementoComprobar si un elemento existeTamaño y Is EmptyCopy y ClearResumen - Conceptos básicos de conjuntos8Temas interesantes de Arrays
Desestructuración de ArraysSintaxis Spread en ArraysArrays dispersosResumen - Taller de Arrays3JSON Parte 1
¿Qué es un JSON?Comprobar si existe una claveMétodos de objetoEl Spread Operator Parte 1El Spread Operator Parte 2Eliminar clavesResumen - Manipular claves de JSON