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