Curso Avanzado de JavaScript ES6
Generadores y Iteradores en ES6

Introducción a los Iteradores

Los iteradores son objetos que permiten recorrer colecciones de datos secuencialmente. En ES6, se introdujo el protocolo de iteración, que define cómo se deben construir los iteradores.

const iterable = {
  [Symbol.iterator]() {
    let step = 0;
    return {
      next() {
        step++;
        if (step === 1) {
          return { value: 'Hola', done: false };
        } else if (step === 2) {
          return { value: 'Mundo', done: false };
        }
        return { value: undefined, done: true };
      }
    };
  }
};

for (const value of iterable) {
  console.log(value);
}

Generadores en JavaScript

Los generadores son funciones especiales que pueden pausar su ejecución y luego reanudarla. Se definen usando la sintaxis function* y se controlan con la palabra clave yield.

function* generador() {
  yield 'Hola';
  yield 'Mundo';
  return '¡Adiós!';
}

const gen = generador();
console.log(gen.next().value); // 'Hola'
console.log(gen.next().value); // 'Mundo'
console.log(gen.next().value); // '¡Adiós!'
console.log(gen.next().done);  // true

Preguntas

1 de 4

¿Qué es un iterador en JavaScript?

Proxies y Reflect en ES6
WeakMap y WeakSet en ES6
Programación Funcional en JavaScript ES6
Examen Final de JavaScript Avanzado