Hoy vamos a resolver un ejercicio de JavaScript. Se trata de ordenar las letras de una cadena, o de ordenar una palabra en orden alfabético. El problema dice así:
Escribe una función JavaScript que devuelva una cadena pasada con letras en orden alfabético.
Cadena de ejemplo: parzibyte
Salida esperada: abeiprtyz
Veamos cómo hacer esto con JS.
Algoritmo: ordenar letras de cadena
Lo que tenemos que hacer es separar la cadena y convertirla a un arreglo para tener un array de sus letras.
Cuando tengamos ese arreglo ya podemos aplicarle cualquier método de ordenamiento, pues podemos comparar las cadenas lexicográficamente.
Afortunadamente JavaScript ya posee un método para ordenar un arreglo, mismo al que podemos invocar con sort
; aunque si tú quieres puedes implementar tu propio método para ordenar arreglos.
Entonces básicamente: convertimos la palabra a arreglo, lo ordenamos y volvemos a unir ese arreglo.
Ordenar palabra alfabéticamente con JavaScript
Lo que vamos a hacer es separar la cadena con split. Luego invocar a sort
para ordenar el arreglo y finalmente invocar a join
para unir ese arreglo como cadena. Queda así:
const cadenaConLetrasOrdenadas = cadena => {
// https://parzibyte.me/blog
// Convertir a arreglo
const cadenaComoArreglo = cadena.split("");
// Ordenar
cadenaComoArreglo.sort();
// Volver a convertir a cadena
const cadenaOrdenada = cadenaComoArreglo.join("");
return cadenaOrdenada;
};
Te repito que puedes remplazar a sort
con un algoritmo de ordenamiento de tu preferencia. El modo de uso es el siguiente:
const cadenaConLetrasOrdenadas = cadena => {
// https://parzibyte.me/blog
// Convertir a arreglo
const cadenaComoArreglo = cadena.split("");
// Ordenar
cadenaComoArreglo.sort();
// Volver a convertir a cadena
const cadenaOrdenada = cadenaComoArreglo.join("");
return cadenaOrdenada;
};
const palabra = "parzibyte";
const conLetrasOrdenadas = cadenaConLetrasOrdenadas(palabra);
console.log("Palabra original: '%s'. Palabra con letras ordenadas: '%s'", palabra, conLetrasOrdenadas);
Al ejecutar el código, la salida es correcta. Obviamente tú puedes cambiar la palabra por cualquier otra para probar.
Lo siguiente lo ejecuto con node, pero igual se ejecuta en el navegador:
Y así es como ordenamos las letras dentro de una palabra. Si te gusta este lenguaje te dejo más sobre Programación JS en mi blog.