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