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 կոլեկցիայի իտերատորը: Հաջորդաբար կանչեք այն, մինչև կոլեկցիայի տարրերը չավարտվեն: