La wikipedia define como palindromo a una palabra o expresión que se lee igual de izquierda a derecha que de derecha a izquierda. En el siguiente tutorial vamos a hacer una función que compruebe si una expresión es palindrome o no.
Escribiendo la función palindrome checker en javascript
js
function palindromeChecker(str) {const strReversed = str.split("").reverse().join("");return strReversed === str ? "es palindromo" : "no es palindromo";}console.log(palindromeChecker("oso")); // es palindromoconsole.log(palindromeChecker("hola")); // no es palindromoconsole.log(palindromeChecker("omo")); // es palindromo
- Primero creamos la función, definiendo que debe recibir un string.
- Creamos la constante strReversed, en la que guardaremos el string invertido.
- .split('') lo separa en un array.
- .reverse() revierte el arreglo.
- .join('') Lo vuelve a convertir en string.
- Por ultimo usando el operador ternario, indicamos que si ambas cadenas son iguales devuelva 'es palindromo', y si no 'no es palindromo'.
Con esto podríamos dar el ejercicio por terminado pero aún falta algo, la función anterior solo sirve para palabras, si necesitamos verificar que alguna frase sea palindromo el código anterior no funcionará así que vamos a agregarle algunas cositas a nuestro ejemplo.
Añadir expresión regular para eliminar espacios en blanco del string
js
function palindromeChecker(str) {const newStr = str.replace(/[\W_]/g, "").toLowerCase();const strReversed = newStr.split("").reverse().join("");return newStr === strReversed ? "es palindromo" : "no es palindromo";}console.log(palindromeChecker("Ali tomo tila")); // es palindromoconsole.log(palindromeChecker("Amad a la dama")); // es palindromoconsole.log(palindromeChecker("otra cosa")); // no es palindromo
- Lo que hemos echo es agregar una nueva constante que guarda el valor del string pero eliminando los espacios, gracias a la expresión regular que pasamos dentro del método .replace(), también lo convertimos en minúsculas.
- La constante strReversed es igual a la anterior solo que esta vez se crea a partir de el valor de newStr.
Probar código en vivo
Soy Juneiker Castillo, un desarrollador web frontend apasionado por la programación y la creación de sitios web modernos rápidos y escalables, en fin un friki 🤓 de javascript enamorado de react js ⚛️.
Sobre mi