Wywołania iteratora w JavaScript

Każde kolejne wywołanie iteratora powinno zwracać obiekt specjalnej struktury. Przyjrzyjmy się jej. Załóżmy, że mamy tablicę:

javascriptlet arr = [1, 2, 3];

Pobierzmy iterator tablicy do zmiennej:

javascriptlet iter = arr[Symbol.iterator]();

Teraz w tej zmiennej znajduje się obiekt z metodą next. Ta metoda będzie zwracać obiekt z kluczem value, zawierającym wartość elementu, i kluczem done, zawierającym informację o tym, czy zakończyło się przeglądanie, czy nie:

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

Kolejne wywołanie metody next będzie za każdym razem zwracać następny element:

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

A gdy tylko elementy się skończą, zobaczymy następujące wartości:

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

Pobierz iterator kolekcji Map. Kolejno go wywołuj, dopóki elementy kolekcji się nie skończą.

Задание 2

Pobierz iterator kolekcji NodeList. Kolejno go wywołuj, dopóki elementy kolekcji się nie skończą.

Задание 3

Pobierz iterator kolekcji HTMLCollection. Kolejno go wywołuj, dopóki elementy kolekcji się nie skończą.