Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

231
Vistas
La única palabra que no pasa la prueba es "casi tomla".

Estoy aprendiendo JS en freecodecamp y estoy atascado en un problema. Estoy creando un corrector palíndromo. Mi código casi funciona. Sin embargo, solo hay una palabra que no pasa la prueba y es Almostomla. No es un palíndromo, pero mi código devuelve verdadero. He probado varias cosas. Incluso reescribió el código y usó el bucle while, pero nada parece ayudar. Hay una solución en la web de freeCodecamp, pero he escrito el código de otra manera y no puedo descifrar mi error.

Aquí está mi código.

 let reversedStr = []; function palindrome(str) { let d = str.replace(/[^a-zA-Z0-9]/g, "").toLowerCase(); for (let i = d.length - 1; i >= 0; i--) { reversedStr.push(d[i]); } for (let j = 0; j < str.length; j++) { if (reversedStr[j] == d[j]) { return true; } else { return false; } } } console.log(palindrome("almostomla"));

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Esta línea if (reversedStr[j] == d[j]) {return true; regresa tan pronto como el carácter coincide tanto en el índice. No comprueba el resto de los caracteres.

De hecho, puede regresar tan pronto como el carácter en ambos índices no coincida.

También tenga en cuenta que la reversedStr tiene que estar dentro de la función. De lo contrario, contendrá valores anteriores.

 function palindrome(str) { let reversedStr = []; let d = str.replace(/[^a-zA-Z0-9]/g, "").toLowerCase(); for (let i = d.length - 1; i >= 0; i--) { reversedStr.push(d[i]); } for (let j = 0; j < str.length; j++) { if (reversedStr[j] !== d[j]) { return false; } } return true } console.log(palindrome("almostomla")); console.log(palindrome("1221"));

about 4 years ago · Juan Pablo Isaza Denunciar

0

Su código devuelve "verdadero" o "falso" después de la primera coincidencia: comprueba que 'a' es igual a 'a' y devuelve verdadero.

Puede devolver "falso" desde el interior del ciclo solo si encontró una letra duplicada; de lo contrario, devolverá verdadero después de que finalice el ciclo.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda