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

125
Vistas
Usando una función directamente o declarándola a una variable

Soy nuevo en el desarrollo de software y trato de comprender los conceptos básicos de JavaScript. En el siguiente código, si escribo iterator.next() en lugar de charAt en "while", el resultado cambia. ¿Puede explicarme por qué solo devuelve 1 cuando escribo iterator.next directamente?

 const str = '123'; const iterator = str[Symbol.iterator]() let charAt = iterator.next() while (!charAt.done) { console.log(charAt.value) charAt = iterator.next() // output: "1" // "2" // "3" }

 const str = '123'; const iterator = str[Symbol.iterator]() let charAt = iterator.next() while (!iterator.next().done) { console.log(charAt.value) charAt = iterator.next() // output: "1" }

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

0

Es más fácil ver si tienes una cuerda más larga.

 const str = '12345678'; const iterator = str[Symbol.iterator]() let charAt = iterator.next() while (!iterator.next().done) { console.log(charAt.value) charAt = iterator.next() // output: "1" }

Debido a que llamas a next() en dos lugares diferentes dentro del bucle (así como una vez fuera del bucle), cada vez que recorres el bucle, avanzas dos lugares.

about 4 years ago · Juan Pablo Isaza Denunciar

0

  • has usado iterator.next() tres veces,
  • por primera vez devuelve 1, que asignas a charAt,
  • luego, en la condición de ciclo while iterator.next() devuelve 2, pero no lo ha asignado en ningún lugar,
  • y debido a que aún no ha actualizado su valor charAt, registra 1,
  • luego iterator.next() devuelve 3, que asignas a charAt,
  • pero en el segundo paso del ciclo while iterator.next() devuelve {done:true}, y el control no entra dentro del 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