JavaScript-də iterator çağırışları

Iteratorun hər bir ardıcıl çağırışı xüsusi quruluşlu bir obyekt qaytarmalıdır. Gəlin bu quruluşa baxaq. Tutaq ki, bizim bir massivimiz var:

javascriptlet arr = [1, 2, 3];

Massivin iteratorunu dəyişəndə əldə edək:

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

İndi bu dəyişəndə next metodu olan obyekt var. Bu metod, elementiın dəyərini ehtiva edən value açarı və iterationun bitib-bitmədiyi haqqında məlumat ehtiva edən done açarı olan obyekt qaytaracaq:

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

next metodunun ardıcıl çağırışı hər dəfə növbəti elementi verəcək:

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

Elementlər bitdiyi anda isə biz aşağıdakı dəyərləri görəcəyik:

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

Map kolleksiyasının iteratorunu əldə edin. Kolleksiyanın elementləri bitənə qədər onu ardıcıl olaraq çağırın.

Задание 2

NodeList kolleksiyasının iteratorunu əldə edin. Kolleksiyanın elementləri bitənə qədər onu ardıcıl olaraq çağırın.

Задание 3

HTMLCollection kolleksiyasının iteratorunu əldə edin. Kolleksiyanın elementləri bitənə qədər onu ardıcıl olaraq çağırın.