1 год назад
Итераторы и генераторы в JavaScript
Источник: Nuances of Programming В языке JavaScript итераторы и генераторы являются мощными инструментами, позволяющими разработчикам контролировать итерацию и поток данных. Вместе эти функции образуют впечатляющий дуэт, позволяющий писать лаконичный, эффективный и гибкий JavaScript-код. Итераторы и генераторы  —  это передовые концепции JavaScript, позволяющие эффективно и настраиваемо выполнять циклический переход по структурам данных. Они также предоставляют механизм для настройки поведения циклов for…of...
1 год назад
🖥 Генераторы и итераторы в JavaScript В языке JavaScript итераторы и генераторы являются мощными инструментами, позволяющими разработчикам контролировать итерацию и поток данных. Вместе эти функции образуют впечатляющий дуэт, позволяющий писать лаконичный, эффективный и гибкий JavaScript-код. В JavaScript функция-итератор — это уникальная функция, возвращающая объект-итератор. Объект-итератор — это объект, который через метод next() возвращает объект с двумя свойствами: value и done. Свойство value представляет собой следующее значение в последовательности, а свойство done указывает, достиг ли итератор конца последовательности. Функции-итераторы могут использоваться для перебора наборов данных, таких как массивы и объекты. Ниже приведен пример функции-итератора, выполняющей итерацию по массиву: function Iterator(array) { let nextIndex = 0; return { next: function () { if (nextIndex < array.length) { return { value: array[nextIndex++], done: false, }; } else { return { value: undefined, done: true, }; } }, }; } const array = [1, 2, 3, 4, 5]; const arrayValue = Iterator(array); console.log(arrayValue.next()); // { value: 1, done: false } console.log(arrayValue.next()); // { value: 2, done: false } console.log(arrayValue.next()); // { value: 3, done: false } console.log(arrayValue.next()); // { value: 4, done: false } console.log(arrayValue.next()); // { value: 5, done: false } console.log(arrayValue.next()); // { value: undefined, done: true } В приведенном выше коде определена функция Iterator, которая принимает в качестве аргумента массив и возвращает объект итератора. Объект итератора через метод next возвращает следующий элемент массива и обновляет внутреннюю переменную nextIndex для отслеживания индекса массива. Метод next проверяет, меньше ли nextIndex длины массива. Если это так, то метод возвращает объект со значением массива в позиции nextIndex и устанавливает свойство done в false. После этого переменная nextIndex увеличивается на единицу. Если nextIndex больше или равно длине массива, то метод next устанавливает свойство done в true. 📌Читать дальше @javascript_react