Выклікі ітэратара ў 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.
Паслядоўна выклікайце яго,
пакуль элементы калекцыі не скончацца.