Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

183
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!