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

181
Vistas
Aprendiendo JavaScript. Mi solución de número palíndromo no funciona para múltiplos de 10

Este código funciona bien, excepto cualquier número que sea múltiplo de 10. Probé con 121, -121, 55, -55. Estaba funcionando bien. pero con 10 no está generando la respuesta correcta.

 var isPalindrome = function(x) { var convertToString= toString(x); var splitString= convertToString.split(""); var reversedString= splitString.reverse(); if(x<0){ return false; } if(reversedString == splitString){ return true; } else { return false; } };
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Hay un par de problemas con este código, aunque estás en el camino correcto. Primero, su uso de toString es ligeramente incorrecto:

 toString(101); // '[object Undefined]'

toString debe llamarse como un método de x , como x.toString() . Vea esta página para más detalles. Si lo cambia a x.toString() , funciona:

 var x = 101; // "101"

En segundo lugar, actualmente está comparando matrices con == , que no hará lo que desea. Darse cuenta de:

 [0, 1] == [0, 1] // false

mientras

 "01" == "01" // true

Esto se debe a que JS compara cadenas por valor, pero no compara objetos (lo que incluye matrices) por valor. Por ejemplo:

 var x = 1; var y = 1; console.log(x == y); // true var a = [1]; var b = [1]; console.log(a == b); // false console.log(a == a); // true

Para obtener más información al respecto, lea esta pregunta o intente buscar en Google 'javascript pass by reference'. Pero en resumen, una solución a su problema sería simplemente usar cadenas, que funcionan como cabría esperar con == .

Después de solucionar estos problemas, su código debería verse así:

 var isPalindrome = function(x) { var convertToString= String(x); var reversedString= convertToString.split("").reverse().join(""); if(x<0){ return false; } if(convertToString == reversedString){ return true; } else { return false; } };

También podría considerar acortar la declaración if al final y hacer que el espaciado sea más consistente:

 var isPalindrome = function(x) { var convertToString = String(x); var reversedString = convertToString.split("").reverse().join(""); if(x < 0){ return false; } return convertToString == reversedString; };
about 4 years ago · Juan Pablo Isaza Denunciar

0

La implementación de su función es totalmente incorrecta. No debería funcionar con ninguna entrada dada.

 if(convertToString == splitString) // comparison

aquí está utilizando el operador de comparación para comparar ambos valores, pero debajo del capó, el compilador está comparando [ ] = [ ] los valores dentro de las matrices, no importa, siempre será cierto. tiene que encontrar una manera de comparar los valores dentro de ambas matrices para que la función funcione. (Spoiler: podría usar algún tipo de bucle para comparar los valores)

Y usa la función toString así,

 var convertToString= x.toString();

para obtener el valor en cadena de x.

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