Texto

Ordena líneas de texto alfabética o numéricamente

Pega una lista, elige un orden y la versión ordenada aparece abajo. El orden natural pone item2 antes que item10, cosa que el orden alfabético simple, como es sabido, no hace.

El orden por punto de código pone todas las mayúsculas antes que todas las minúsculas.

Opciones
0Líneas de entrada
0Líneas de salida
0Vacías descartadas
0Duplicados

Por qué el orden más obvio se equivoca

Todos los lenguajes de programación traen una función de ordenación que compara cadenas por el código de sus caracteres. En JavaScript eso significa que ['Zebra', 'apple'].sort() devuelve ['Zebra', 'apple'], porque la Z mayúscula es el punto de código 90 y la a minúscula es el 97. Cualquier letra mayúscula se ordena antes que cualquier minúscula. Nadie que esté alfabetizando una lista de nombres quiere eso.

Con los acentos es peor. En orden por punto de código, é cae después de z, así que una lista de palabras en español o en francés queda con un final de aspecto aleatorio. Y si un acento está guardado como una letra simple más una marca combinante en lugar de como un solo carácter, la misma palabra puede quedar ordenada en dos lugares distintos según dónde se haya escrito.

Tu configuración de idioma usa la intercalación del navegador, que sabe que a y A van juntas, que la é va al lado de la e y en qué orden espera tu región que vaya el alfabeto. Punto de código te da la comparación en bruto, que es lo que quieres cuando necesitas reproducir lo que hará un programa, el índice de una base de datos o un archivo ya ordenado.

La intercalación depende de quién esté mirando

Esta es la advertencia honesta. El orden que respeta el idioma lo respeta de verdad: en sueco, å, ä y ö van después de la z, mientras que el alemán las trata como variantes de a y o y las archiva ahí. El estonio pone la z entre la s y la t. La herramienta usa el idioma que tenga configurado tu navegador, así que la misma lista ordenada por dos personas distintas puede salir en dos órdenes distintos. Si el orden tiene que ser idéntico en todas partes, usa el punto de código.

El orden natural y dónde deja de ser obvio

El orden alfabético simple lee los dígitos como caracteres, así que file10 va antes que file2: 1 es menor que 2 y la comparación termina ahí. El orden natural lee en cambio las series de dígitos como números, que es lo que una persona espera de una lista de nombres de archivo, capítulos o números de incidencia.

No es una solución universal. Los números de versión lo rompen: con las reglas naturales, 1.10 se compara como uno seguido de diez, que es lo correcto para versiones y lo incorrecto para decimales, donde 1.10 es igual a 1.1. Las fechas escritas como 3/4/2025 se ordenan por el día o por el mes según cuál vaya primero en la cadena, y nunca por la fecha real. Los ceros a la izquierda funcionan casi siempre, pero 007 y 7 se comparan como iguales, así que su orden relativo depende de cuál escribiste primero.

Ese último punto vale en general: el ordenamiento de JavaScript es estable por obligación desde ES2019, así que los elementos que la comparación considera iguales conservan su orden relativo original. Así que ordenar una lista dos veces por dos claves distintas funciona como esperarías.

Los otros tres órdenes

Longitud de la línea ordena por cantidad de caracteres, y los empates se resuelven alfabéticamente. Caracteres, no ancho visual: un emoji o un carácter chino cuenta como una o dos unidades según cómo esté codificado, así que es una medida aproximada para cualquier cosa que no sea texto latino simple.

El número que contiene la línea extrae el primer número que encuentra en cualquier parte de cada línea y ordena por ese valor. Así Capítulo 9 va antes que Capítulo 10, y también funciona con 12 Acacia Avenue. También significa que Capítulo 2 de 10 se ordena por el 2, que suele ser lo correcto, y que Ruta 66 revisitada en 1998 se ordena por el 66, que quizá no lo sea. Las líneas que no tienen ningún número quedan al final, en su orden original, en lugar de fingir que valen cero.

Mezcla aleatoria usa un barajado de Fisher-Yates impulsado por Math.random. Sirve para armar un orden de presentación o para mezclar tarjetas de estudio. No es aleatoriedad criptográfica, así que no la uses para sortear un premio ni para nada en lo que alguien tenga motivos para hacer trampa.

Lo que no puede hacer

Ordena líneas, y solo líneas. Un CSV cuyos campos contengan saltos de línea entre comillas se partirá en los lugares equivocados, y ordenar por la tercera columna no es algo que pueda ofrecer una herramienta que trabaja por líneas: eso necesita una hoja de cálculo. No hay clave de ordenamiento secundaria, no hay agrupación y no hay forma de ordenar esquemas indentados, donde separar una línea de las que cuelgan de ella destruye la estructura. Todo corre en el hilo principal de tu pestaña, así que una lista de cientos de miles de líneas se ordena al instante y una de millones dejará la página colgada mientras trabaja.

Preguntas frecuentes

¿Por qué mi lista se ordena con las mayúsculas primero?

Tienes Orden de las letras en Punto de código, que compara los códigos de los caracteres en bruto, y toda mayúscula tiene un código menor que cualquier minúscula. Cambia a "Tu configuración de idioma" para el orden alfabético normal, o desmarca Distinguir mayúsculas y minúsculas.

¿Cómo hago que file2 vaya antes que file10?

Elige "Alfabético, con los números en orden". Lee las series de dígitos como números en lugar de como caracteres. El alfabético simple compara el 1 de 10 contra el 2 y se detiene ahí, y por eso pone file10 primero.

¿Puedo ordenar por la segunda columna de un CSV?

No. Esta herramienta trabaja con líneas enteras, así que solo puede ordenar por lo que va primero. Pega los datos en una hoja de cálculo para ordenar por columnas, y ten en cuenta que aquí un CSV con saltos de línea dentro de campos entre comillas se partirá mal.

¿Dos personas que ordenen la misma lista obtendrán el mismo resultado?

No necesariamente, con el orden por idioma. El sueco pone å, ä y ö después de la z mientras que el alemán las archiva con la a y la o, y la herramienta sigue el idioma del navegador de cada visitante. Usa el orden por punto de código cuando el resultado tenga que ser idéntico en todas partes.

¿La mezcla es realmente aleatoria?

Es un barajado de Fisher-Yates hecho como corresponde, así que todos los órdenes son igual de probables hasta donde lo permita la fuente de azar. Esa fuente es Math.random, que no es criptográficamente segura. Alcanza para una lista de reproducción, no para un sorteo.

Última actualización 19 de septiembre de 2026