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:

javascriptlet arr = [1, 2, 3];

Obtengamos el iterador del array en una variable:

javascriptlet 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:

javascriptconsole.log( iter.next() ); // {value: 1, done: false}

La llamada sucesiva del método next devuelve cada vez el siguiente elemento:

javascriptconsole.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:

javascriptconsole.log( iter.next() ); // {value: undefined, done: true}
Задание 1

Obtenga el iterador de la colección Map. Llámelo sucesivamente, hasta que se agoten los elementos de la colección.

Задание 2

Obtenga el iterador de la colección NodeList. Llámelo sucesivamente, hasta que se agoten los elementos de la colección.

Задание 3

Obtenga el iterador de la colección HTMLCollection. Llámelo sucesivamente, hasta que se agoten los elementos de la colección.