Ordenación según la configuración regional
Ordene cadenas correctamente con Intl.Collator.
Ordenación según la configuración regional es una lección gratuita de JavaScript Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de JavaScript Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de JavaScript Academy incluye 4 lecciones en total.
Por qué falla la ordenación predeterminada
El método sort() de Array compara las cadenas según sus unidades de código UTF-16. Esto coloca las mayúsculas antes que las minúsculas y gestiona mal los acentos, lo que resulta incorrecto para las listas legibles.
const words = ["banana", "Apple", "cherry"];
console.log([...words].sort()); // ["Apple","banana","cherry"] — capital winslocaleCompare
String.prototype.localeCompare compara dos cadenas según las reglas de una configuración regional y devuelve un valor negativo, cero o positivo.
console.log("apple".localeCompare("banana")); // -1
console.log("banana".localeCompare("apple")); // 1Ordenar con localeCompare
Páselo como comparador para obtener un orden más natural para las personas.
const words = ["banana", "Apple", "cherry"];
console.log([...words].sort((a, b) => a.localeCompare(b)));
// ["Apple", "banana", "cherry"] — case-insensitive orderingIntl.Collator
Para ordenar muchos elementos, Intl.Collator es más rápido: créelo una vez y reutilice su método compare.
const collator = new Intl.Collator("en-US");
const words = ["banana", "Apple", "cherry"];
console.log([...words].sort(collator.compare));Acentos y signos diacríticos
Los collators ordenan correctamente los caracteres acentuados según la configuración regional, a diferencia de la comparación por unidades de código.
const words = ["zebra", "ela", "elf", "elan"];
const collator = new Intl.Collator("fr");
console.log([...words].sort(collator.compare));Sensibilidad
sensitivity controla qué diferencias importan: "base" ignora mayúsculas, minúsculas y acentos, "accent" ignora las mayúsculas y minúsculas y "variant" distingue todas las diferencias.
const c = new Intl.Collator("en", { sensitivity: "base" });
console.log(c.compare("apple", "APPLE")); // 0 (treated equal)Ordenación numérica
numeric: true ordena por valor los números incluidos en las cadenas, de modo que «file2» aparece antes que «file10».
const files = ["file10", "file2", "file1"];
const c = new Intl.Collator("en", { numeric: true });
console.log([...files].sort(c.compare)); // ["file1","file2","file10"]Orden según mayúsculas y minúsculas
caseFirst: "upper" o "lower" determina si las mayúsculas se ordenan antes que las minúsculas cuando las demás diferencias son iguales.
const c = new Intl.Collator("en", { caseFirst: "upper" });
console.log(["b", "B", "a", "A"].sort(c.compare));La configuración regional importa para el orden
Los distintos idiomas ordenan alfabéticamente de manera diferente. En sueco, ciertas letras acentuadas se ordenan después de la z, no cerca de la a.
const words = ["z", "a", "o"];
console.log([...words].sort(new Intl.Collator("sv").compare));Buscar con usage
usage: "search" ajusta el collator para buscar en lugar de ordenar, lo que resulta útil para filtrar sin tener en cuenta los acentos.
const c = new Intl.Collator("en", { usage: "search", sensitivity: "base" });
function matches(a, b) { return c.compare(a, b) === 0; }
console.log(matches("cafe", "CAFE")); // trueOrdenar objetos
Utilice el collator sobre una clave al ordenar matrices de objetos.
const people = [{ name: "Bob" }, { name: "alice" }, { name: "Carol" }];
const c = new Intl.Collator("en");
console.log(people.sort((a, b) => c.compare(a.name, b.name)).map((p) => p.name));Comprobación rápida
Pruebe la ordenación según la configuración regional.
Repaso: ordenación según la configuración regional
Ha visto por qué el sort() predeterminado es incorrecto, ha utilizado localeCompare y el más rápido Intl.Collator, y ha gestionado acentos, sensibilidad, ordenación numérica y por mayúsculas y minúsculas, alfabetos específicos de cada configuración regional y búsquedas. Con esto se completa el curso de Intl.
Preguntas frecuentes
¿La lección «Ordenación según la configuración regional» es gratis?
Sí — el texto completo de «Ordenación según la configuración regional» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de JavaScript Academy, actualiza a CoddyKit PRO. El curso de JavaScript Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Ordenación según la configuración regional»?
Ordene cadenas correctamente con Intl.Collator. Practicas JavaScript Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar JavaScript Academy?
No se requiere experiencia previa. JavaScript Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Ordenación según la configuración regional»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de JavaScript Academy?
Sí. Cada lección de JavaScript Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Formato de números y monedas
- Formato de fechas y horas
- Tiempo relativo y plurales
- Ordenación según la configuración regional