Фарохондаҳои итератор дар 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-ро ба даст оред. Онро пайдарпай то он даме ки унсурҳои коллексия тамом нашаванд, фарохонед.