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 жинағының итераторын алыңыз.
Оны жинақ элементтері аяқталғанға
дейін дәйекті түрде шақырыңыз.