Llamadas del iterador en JavaScript
Cada llamada sucesiva del iterador debe devolver un objeto de una estructura especial. Vamos a analizarla. Supongamos que tenemos un array:
let arr = [1, 2, 3];
Obtengamos el iterador del array en una variable:
let iter = arr[Symbol.iterator]();
Ahora en esta variable se contiene un objeto
con el método next. Este método devolverá
un objeto con la clave value, que contiene
el valor del elemento, y la clave done,
que contiene información sobre si ha terminado
la iteración o no:
console.log( iter.next() ); // {value: 1, done: false}
La llamada sucesiva del método next
devuelve cada vez el siguiente
elemento:
console.log( iter.next() ); // {value: 1, done: false}
console.log( iter.next() ); // {value: 2, done: false}
console.log( iter.next() ); // {value: 3, done: false}
Y tan pronto como se agoten los elementos, veremos los siguientes valores:
console.log( iter.next() ); // {value: undefined, done: true}
Obtenga el iterador de la colección Map.
Llámelo sucesivamente,
hasta que se agoten los elementos de la colección.
Obtenga el iterador de la colección NodeList.
Llámelo sucesivamente,
hasta que se agoten los elementos de la colección.
Obtenga el iterador de la colección HTMLCollection.
Llámelo sucesivamente,
hasta que se agoten los elementos de la colección.