Ya vimos cómo invertir una cadena o palabra en C y en Arduino.
Ahora vamos a ver cómo rotar una cadena en JavaScript utilizando dos maneras o funciones.
Las cadenas en JavaScript son inmutables y no son parecidas a las de C. Es decir, en C son arreglos de caracteres pero en JavaScript no. Por lo tanto, para invertir una cadena en JavaScript tenemos que crear una nueva cadena.
Ya sea que llamemos a una función que regrese una nueva cadena o que creemos una, al final sí podremos lograr nuestro objetivo, y podrá invertir cadenas, palabras, oraciones completas y texto.
Método 1 para invertir una cadena en JS
Este método es conocido por todos pero no lo veo muy explicativo o rápido, sería de probar su rendimiento.
Lo que hacemos es convertir la cadena a arreglo con split
, seguido a eso vamos a invertir ese arreglo (con el método reverse
) y luego convertirlo de nuevo a cadena uniendo los elementos del arreglo con join
.
Como lo dije, es un poco sucio pero igual funciona. Así quedaría:
const invertirCadena = cadena => cadena.split("").reverse().join("");
let cadena = "Hola";
console.log("Cadena:", invertirCadena(cadena));
Ya expliqué arriba lo que hace esto. Estás viendo en acción una función flecha y el uso de const en JavaScript.
Rotar cadena en JavaScript: método 2
Este método es más complicado si lo queremos ver de ese modo, pero al final nos queda una mayor satisfacción.
Recibimos la cadena y creamos aparte una nueva. Recorremos la cadena desde su fin hasta su inicio, tomamos el carácter y lo anexamos a la cadena inicial.
/**
* Invertir una cadena en JS
* @author parzibyte
* */
const invertirCadena = cadena => {
let nuevaCadena = "";
for (let x = cadena.length - 1; x >= 0; x--) {
nuevaCadena += cadena[x];
}
return nuevaCadena;
}
Esto es porque no podemos modificar directamente una cadena (intercambiando sus caracteres) pero sí podemos crear una nueva y añadirle contenido para invertir una cadena o palabra en JavaScript.
Probar método para rotar cadena
Recordemos que la cadena puede venir de cualquier lugar; por ejemplo del valor de un input o cualquier otra cosa.