JavaScript-те итератор шақырулары

Итератордың әрбір дәйекті шақыруы арнайы құрылымды нысанды қайтаруы керек. Оны қарастырайық. Бізде мына массаж бар делік:

javascriptlet arr = [1, 2, 3];

Массив итераторын айнымалыға алайық:

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

Енді бұл айнымалыда next әдісі бар нысан бар. Бұл әдіс элемент мәнін қамтитын value кілті бар нысанды және done кілті бар, іздеудің аяқталған-аяқталмағандығы туралы ақпаратты қамтитын нысанды қайтарады:

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

next әдісін дәйекті шақыру әр жолы келесі элементті шығарады:

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

Ал элементтер аяқталған кезде, біз келесі мәндерді көреміз:

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

Map жинағының итераторын алыңыз. Оны жинақ элементтері аяқталғанға дейін дәйекті түрде шақырыңыз.

Задание 2

NodeList жинағының итераторын алыңыз. Оны жинақ элементтері аяқталғанға дейін дәйекті түрде шақырыңыз.

Задание 3

HTMLCollection жинағының итераторын алыңыз. Оны жинақ элементтері аяқталғанға дейін дәйекті түрде шақырыңыз.