JavaScriptda Iterator Chaqiruvlari

Iteratorning har bir ketma-ket chaqiruvi maxsus tuzilishga ega bo'lgan obyektni qaytarishi kerak. Keling, bu tuzilishni ko'rib chiqaylik. Bizda quyidagi massiv mavjud bo'lsin:

javascriptlet arr = [1, 2, 3];

Massiv iteratorini o'zgaruvchiga olamiz:

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

Endi bu o'zgaruvchida next metodi bo'lgan obyekt mavjud. Bu metod value kalitiga ega bo'lgan, element qiymatini o'z ichiga olgan va done kalitiga ega bo'lgan, aylanib chiqish tugaganligi haqida ma'lumotni o'z ichiga olgan obyektni qaytaradi:

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

next metodining ketma-ket chaqiruvi har doim keyingi elementni chiqaradi:

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

Elementlar tugagach, biz quyidagi qiymatlarni ko'ramiz:

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

Map kolleksiyasining iteratorini oling. Uni ketma-ket chaqiring, kolleksiya elementlari tugaguncha.

Задание 2

NodeList kolleksiyasining iteratorini oling. Uni ketma-ket chaqiring, kolleksiya elementlari tugaguncha.

Задание 3

HTMLCollection kolleksiyasining iteratorini oling. Uni ketma-ket chaqiring, kolleksiya elementlari tugaguncha.