Todas las buenas respuestas hasta ahora, pero (con la excepción del enfoque recursivo de Ole M. Kristiansen ) volverían falsas para (por ejemplo) “auto de carrera” o “Señora, soy Adam”. Es decir, la puntuación y los espacios deben coincidir , así como letras. (Algunas de las soluciones también devolverán falso si las mayúsculas / minúsculas no coinciden). Quizás esté bien, pero podría ser bueno tener una segunda versión de la función para probar una versión “limpia”; es decir, suponiendo que haya nombrado la función “isPalindrome” que requiere una coincidencia EXACTA (mayúsculas / minúsculas y puntuación), realice otra función así:
la función esPalindromeClean (str) {
return isPalindrome (str.replace (/ \ s / g, ”). toLowerCase ());
}
Luego puede verificar cualquier tipo de palíndromo.
- Cómo mover la barra de navegación al medio
- ¿Puedo usar ReactJS con otros marcos Javascript?
- ¿Qué hace que php apesta?
- Cómo empujar nuevos datos de mysql
- Cómo conseguir un trabajo como desarrollador web y qué debe aprender para ser desarrollador web
Además, si desea el enfoque más eficiente, una versión del código de Cyril Anderson parece ser la más rápida:
función esPalindrome (str) {
var len = Math.floor (str.length / 2);
para (var i = 0; i <len; i ++)
if (str [i]! == str [str.length – i – 1])
falso retorno;
volver verdadero;
}
(En mis pruebas, esto fue apenas más rápido que el código de Matt Long ; YMMV.) Puede ver los resultados de referencia AQUÍ (necesitará ver la consola Javascript para ver los números). No puedo tomar el crédito por toda esa evaluación comparativa; Acabo de extender un punto de referencia existente que está vinculado desde esta página de stackoverflow: comprobación de Palindrome en Javascript.