Wywołania iteratora w JavaScript
Każde kolejne wywołanie iteratora powinno zwracać obiekt specjalnej struktury. Przyjrzyjmy się jej. Załóżmy, że mamy tablicę:
let arr = [1, 2, 3];
Pobierzmy iterator tablicy do zmiennej:
let 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:
console.log( iter.next() ); // {value: 1, done: false}
Kolejne wywołanie metody next
będzie za każdym razem zwracać następny
element:
console.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:
console.log( iter.next() ); // {value: undefined, done: true}
Pobierz iterator kolekcji Map.
Kolejno go wywołuj,
dopóki elementy kolekcji się nie skończą.
Pobierz iterator kolekcji NodeList.
Kolejno go wywołuj,
dopóki elementy kolekcji się nie skończą.
Pobierz iterator kolekcji HTMLCollection.
Kolejno go wywołuj,
dopóki elementy kolekcji się nie skończą.