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

114
Vistas
invertir una cadena en Javascript usando la función de cambio

¿Alguien puede explicar cuál es el error en el siguiente código?

 function reverseString(str) { let reversedStr = ""; for (let i = 0; i < str.length; i++) { reversedStr.unshift(str[i]); return str; } } console.log( reverseString("hello") )

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

0

Necesita una matriz para hacer unshift y el regreso fuera del ciclo

 const reverseString = str => { const rev = []; for (let i = 0; i < str.length; i++) rev.unshift(str[i]) return rev.join("") }; console.log( reverseString("hello") )

pero aquí hay una línea

 const reverseString = str => str ? [...str].reverse().join("") : str; console.log( reverseString("hello") )

about 4 years ago · Juan Pablo Isaza Denunciar

0

Usando el método de unshift

 function reverseString(str) { let arr = []; for (let i = 0; i < str.length; i++) { arr.unshift(str[i]); } return arr.join(""); } console.log(reverseString("hello"));

Alternativa

Si tenía la intención de hacer la cadena al revés sin usar una función de utilidad, puede hacerlo como se muestra a continuación. Si la longitud de la cadena es n , entonces la complejidad temporal del siguiente código es O(n/2) .

 function reverseString(str) { // get single characters into array const arrOfChars = str.split(""); // get the half size of the array const halfLengthOfArr = Math.floor(arrOfChars.length / 2); // start index let i = 0; // swap chars until reach the middle of the array // hello // ^ ^ // oellh // ^ ^ // olleh while (i < halfLengthOfArr) { // swap coupterparts from start and end with same distance const start = arrOfChars[i]; arrOfChars[i] = arrOfChars[arrOfChars.length - (i + 1)]; arrOfChars[arrOfChars.length - (i + 1)] = start; i++; } // return the output array as a string return arrOfChars.join(""); } console.log(reverseString("hello"));

about 4 years ago · Juan Pablo Isaza Denunciar

0

Recomiendo alejarse por completo del enfoque sin turnos según sus requisitos.

Por lo tanto, he diseñado dos versiones de su función para usted y todas se basan únicamente en funciones de matriz.

Versión compacta:

 function reverseString(str) { return str.split("").reverse().join("") } console.log( reverseString("hello") )

Versión más larga (más fácil de entender):

 function reverseString(str) { const characters = str.split("") const charactersReversed = characters.reverse() return charactersReversed.join("") } console.log( reverseString("hello") )

Espero que haya ayudado, incluso si no atiendo su solicitud de cambio de turno.

Por último, pero no menos importante, también modifiqué su código inicial con su función de cambio de marcha, incluso si no recomiendo este código en producción:

 function reverseString(str) { const reversedStr = []; for (let i = 0; i < str.length; i++) { reversedStr.unshift(str[i]); } return reversedStr.join(""); } console.log( reverseString("hello") )
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