Iteratoriaus iškvietimai JavaScript

Kiekvienas nuoseklus iteratoriaus iškvietimas turi grąžinti specialios struktūros objektą. Pažiūrėkime į šią struktūrą. Tarkime, kad turime masyvą:

javascriptlet arr = [1, 2, 3];

Gaukime masyvo iteratoriaus kintamąjį:

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

Dabar šiame kintamajame yra objektas su metodu next. Šis metodas grąžins objektą su raktu value, kuriame yra elemento reikšmė, ir raktu done, kuriame yra informacija, ar perėjimas jau baigėsi, ar ne:

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

Nuoseklus metodo next iškvietimas kiekvieną kartą pateiks kitą 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}

O kai tik elementai baigsis, pamatysime tokias reikšmes:

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

Gaukite Map kolekcijos iteratoriaus. Nuosekliai jį iškvieskite, kol kolekcijos elementai nesibaigs.

Задание 2

Gaukite NodeList kolekcijos iteratoriaus. Nuosekliai jį iškvieskite, kol kolekcijos elementai nesibaigs.

Задание 3

Gaukite HTMLCollection kolekcijos iteratoriaus. Nuosekliai jį iškvieskite, kol kolekcijos elementai nesibaigs.