Выклікі ітэратара ў 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. Паслядоўна выклікайце яго, пакуль элементы калекцыі не скончацца.