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

156
Views
¿Puede un bucle de JavaScript, en la segunda iteración, iterar a partir del resultado de la iteración anterior?

Me acabo de unir a Stack Overflow y esta es mi primera publicación, así que no duden en avisarme si estoy haciendo algo mal.

Se me presentó el desafío de crear una función que acepte una cadena y llame a otra función determinada que intercambie índices hasta que la cadena se devuelva al revés.

He llegado tan lejos como a continuación:

 //given function function swap(str, first, last){ str = str.split(''); let firstIndex = str[first]; str[first] = str[last]; str[last] = firstIndex; str = str.join("").toString() return str; } //my function let word = "Hello" function reverseSwap(str) { let result = "" for (let i = 0; i < str.length/2; i++) { result += swap(str, i, str.length -1 - i); } return result; } console.log(reverseSwap(word))

Sin embargo, esto devuelve "oellHHlleoHello", porque cada iteración intercambia índices de la cadena original y luego se concatena. ¿Es posible, en la segunda iteración, hacer que el ciclo itere a partir del resultado de la iteración anterior para que ocurra lo siguiente?:

resultado de la primera iteración: intercambio (palabra, 0, 4) que devuelve "oellH"
la segunda iteración usa "oellH" en lugar de "Hello" para intercambiar (1, 3) que devuelve "olleH"
Luego, swap(2,2) que no cambia nada.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

no funciona porque

  • No += agregue todas las cadenas nuevas a su resultado. (Esto agregará cada cadena de intercambio a su resultado).
  • Tienes que manipular siempre la cadena de "resultado" . (Desea hacer un intercambio siempre en la versión actualizada de la cadena. No en la original)

Aquí hay una solución simple:

 function swap(str, first, last) { str = str.split(""); let firstIndex = str[first]; str[first] = str[last]; str[last] = firstIndex; str = str.join("").toString(); return str; } let word = "Hello"; function reverseSwap(str) { for (let i = 0; i < str.length / 2; i++) { str = swap(str, i, str.length - 1 - i); } return str; } console.log(reverseSwap(word));

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!