JavaScript-ում իտերատորի կանչերը
Իտերատորի յուրաքանչյուր հաջորդական կանչ պետք է վերադարձնի հատուկ կառուցվածքով օբյեկտ: Եկեք ուսումնասիրենք այն: Ենթադրենք ունենք զանգված.
let arr = [1, 2, 3];
Ստացենք զանգվածի իտերատորը փոփոխականի մեջ.
let iter = arr[Symbol.iterator]();
Այժմ այս փոփոխականը պարունակում է օբյեկտ
next մեթոդով: Այս մեթոդը կվերադարձնի
օբյեկտ value բանալիով, որը պարունակում է
տարրի արժեքը, և done բանալիով,
որը պարունակում է տեղեկատվություն այն մասին, ավարտվել է
թե ոչ թվարկումը.
console.log( iter.next() ); // {value: 1, done: false}
next մեթոդի հաջորդական կանչը
ամեն անգամ կտա հաջորդ
տարրը.
console.log( iter.next() ); // {value: 1, done: false}
console.log( iter.next() ); // {value: 2, done: false}
console.log( iter.next() ); // {value: 3, done: false}
Իսկ հենց տարրերը վերջանան, մենք կտեսնենք հետևյալ արժեքները.
console.log( iter.next() ); // {value: undefined, done: true}
Ստացեք Map կոլեկցիայի իտերատորը:
Հաջորդաբար կանչեք այն,
մինչև կոլեկցիայի տարրերը չավարտվեն:
Ստացեք NodeList կոլեկցիայի իտերատորը:
Հաջորդաբար կանչեք այն,
մինչև կոլեկցիայի տարրերը չավարտվեն:
Ստացեք HTMLCollection կոլեկցիայի իտերատորը:
Հաջորդաբար կանչեք այն,
մինչև կոլեկցիայի տարրերը չավարտվեն: