Итераторы в JavaScript

14 февраля 2026
Автор

Дмитрий Нечаев

Итераторы - это механизм в JavaScript, который позволяет перебирать элементы коллекций в порядке, управляемом разработчиком. Они предоставляют удобный способ обхода данных в различных структурах данных, таких как массивы, строки, объекты и другие.

Основные понятия

  1. Итерируемые объекты (iterable objects): Это объекты, у которых реализован метод Symbol.iterator, возвращающий объект-итератор.
  2. Итераторы (iterators): Объекты, предоставляющие метод next(), который возвращает следующий элемент последовательности или значение { value, done }, где value - текущий элемент, а done - булевое значение, указывающее на завершение последовательности.

Пример итератора

// Создаем итерируемый объект - массив чисел
const iterable = [1, 2, 3, 4, 5];

// Получаем итератор для массива
const iterator = iterable[Symbol.iterator]();

// Перебираем элементы массива с помощью итератора
let result = iterator.next();
while (!result.done) {
  console.log(result.value);
  result = iterator.next();
}

Итераторы предоставляют механизм для последовательного доступа к элементам коллекции. Понимание итераторов позволяет эффективно работать с различными структурами данных. Чтобы глубже изучить итераторы и другие важные концепции JavaScript, рекомендуем наш курс. Если вы хотите детальнее погрузиться в JavaScript — приходите на наш большой курс JavaScript с нуля. На курсе 198 уроков и 30 упражнений, AI-тренажеры для безлимитной практики с кодом и задачами 24/7, решение задач с живым ревью наставника, еженедельные встречи с менторами.

Создание собственного итератора

// Создаем объект-коллекцию
const myCollection = {
  data: [10, 20, 30],
  [Symbol.iterator]() {
    let index = 0;
    return {
      next: () => {
        if (index < this.data.length) {
          return { value: this.data[index++], done: false };
        } else {
          return { done: true };
        }
      }
    };
  }
};

// Перебираем элементы коллекции
for (const item of myCollection) {
  console.log(item);
}

Применение итераторов

  1. Цикл for...of: Используется для перебора всех элементов итерируемого объекта.
  2. Ручной перебор: Можно использовать метод next() для ручного перебора элементов.
  3. Итераторы в стандартных объектах: Множество встроенных объектов JavaScript, таких как массивы, строки, множества, карты и другие, поддерживают итераторы.

Заключение

Итераторы предоставляют удобный и гибкий способ перебора элементов коллекций в JavaScript. Они позволяют разработчику контролировать порядок обхода данных и реализовывать собственные итерируемые объекты для работы с различными структурами данных.

Итераторы являются важным инструментом для работы с коллекциями данных в JavaScript. Однако, для их эффективного использования, необходимо понимать, как они работают, как создавать свои собственные итераторы и как использовать их в сочетании с другими концепциями JavaScript. Все это вы узнаете на курсе JavaScript с нуля. В первых 3 модулях уже доступно бесплатное содержание — начните погружаться в мир JavaScript прямо сегодня.

Стрелочка влевоПоверхностное и глубокое копирование в JavaScriptЦикл for...of в JavaScriptСтрелочка вправо

Постройте личный план изучения Javascript до уровня Middle — бесплатно!

Javascript — часть карты развития Frontend

  • step100+ шагов развития
  • lessons30 бесплатных лекций
  • lessons300 бонусных рублей на счет

Бесплатные лекции

Все гайды по Javascript

Итератор в JavaScript
Как работает метод trim() - JavaScriptКак работает метод toUpperCase() - JavaScriptКак работает метод toLowerCase() - JavaScriptКак работает метод substring() - JavaScriptКак работает метод startsWith() - JavaScriptКак работает метод split() - JavaScriptКак работает метод slice() - JavaScriptКак работает метод search() - JavaScriptКак работает метод replaceAll() - JavaScriptКак работает метод replace() - JavaScriptКак работает метод repeat() - JavaScriptКак работает метод padStart() - JavaScriptКак работает метод padEnd() - JavaScriptКак работает метод matchAll() - JavaScriptКак работает метод match() - JavaScriptКак работает метод localeCompare() - JavaScriptКак работает свойство length - JavaScriptКак работает метод lastIndexOf() - JavaScriptКак работает метод indexOf() - JavaScriptКак работает метод includes() - JavaScriptКак работает метод fromCodePoint() - JavaScriptКак работает метод fromCharCode() - JavaScriptКак работает метод endsWith() - JavaScriptКак работает метод concat() - JavaScriptКак работает метод codePointAt() - JavaScriptКак работает метод charCodeAt() - JavaScriptКак работает метод charAt() - JavaScript
try...catch в JavaScriptError в JavaScript
Событие wheel в JavaScriptСобытие unload в JavaScriptСобытие touch в JavaScriptСобытие submit в JavaScriptСобытие scroll в JavaScriptСобытие reset в JavaScriptМетод .preventDefault() в JavaScriptСобытие mouseover в JavaScriptСобытие mouseout в JavaScriptСобытие load в JavaScriptСобытие keyup в JavaScriptСобытие keydown в JavaScriptСобытие invalid в JavaScriptСобытие input в JavaScriptСобытийная модель Event в JavaScriptОбъект события Event в JavaScriptСобытие DOMContentLoaded в JavaScriptСобытие dblclick в JavaScriptСобытие click в JavaScriptСобытие change в JavaScriptСобытие beforeunload в JavaScript
Как работает метод some() - JavaScriptКак работает метод reverse() - JavaScriptКак работает метод reduce() - JavaScriptКак работает метод map() - JavaScriptКак работает метод isArray() - JavaScriptКак работает метод indexOf() - JavaScriptКак работает метод includes() - JavaScriptКак работает метод from() - JavaScriptКак работает метод forEach() - JavaScriptКак работает метод flatMap() - JavaScriptКак работает метод flat() - JavaScriptКак работает метод findIndex() - JavaScriptКак работает метод find() - JavaScriptКак работает метод filter() - JavaScriptКак работает метод every() - JavaScriptМассивы в JavaScript
Открыть базу знаний

Лучшие курсы по теме

изображение курса

Основы JavaScript

Антон Ларичев
AI-тренажеры
Практика в студии
Гарантия
Бонусы
иконка звёздочки рейтинга4.8
3 999 ₽ 6 990 ₽
Подробнее
изображение курса

TypeScript с нуля

Антон Ларичев
AI-тренажеры
Практика в студии
Гарантия
Бонусы
иконка звёздочки рейтинга4.8
3 999 ₽ 6 990 ₽
Подробнее
изображение курса

Next.js - с нуля

Антон Ларичев
AI-тренажеры
Практика в студии
Гарантия
Бонусы
иконка звёздочки рейтинга4.7
3 999 ₽ 6 990 ₽
Подробнее

Отправить комментарий