Iterator

Iterator (ітератор) - об'єкт, призначений для перебору іншого об'єкта.

Ітеруйму об'єкти - це ті, вміст яких можна перебрати в циклі.

Обробка елементів колекції/масиву звичайна і часта операція. В JavaScript є кілька способів обходу колекції починаючи з простого for і for ... in .

var mas=[1,6,8,56,3]; for ( var i = 0; i < mas.length; i++) { alert(mas[i]); } var obj = {a: 1 , b: 2, c: 3}; for( var i in obj) { alert(i+': '+obj[i]); }

У об'єкта Array є методи обходу всіх елементів map(), filter().

Ітератор - це об'єкт, який знає як отримати доступ до елементів колекції по одному за раз, зберігаючи свою поточну позицію (курсор) в цій послідовності. В JavaScript ітератор - це об'єкт, який має метод next(), який повертає наступний об'єкт в послідовності. Цей метод може викликати виключення StopIteration, коли послідовність закінчилася.

Метод next(), який при кожному виклику повертає об'єкт з властивостями: value - чергове значення, done - false якщо є ще значення, і true - в кінці.

Ітератор може використовуватися різними способами: безпосередньо через виклик методу next() або використовуючи конструкції for ... in або for...of.

Створення ітератора:

//функція інтератор function Iterator(array){ var nextIndex = 0; return { next: function(){ return nextIndex < array.length ? {value: array[nextIndex++], done: false} : {done: true}; } } } var mas= [ "a" , "b" , "c" ]; var k=Iterator(mas); alert(k.next().value);