Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: iterator, iterable, next, Symbol.iterator, iteration protocol

Какие методы должен реализовывать итератор?

Проверяет знание протокола итерации в JavaScript и методов, которые должен реализовывать итератор для корректной работы с циклами и синтаксисом spread.

Короткий ответ

Итератор в JavaScript должен реализовывать метод next(), который возвращает объект с двумя свойствами: value (текущее значение) и done (флаг завершения). Также объект может быть итерируемым, если имеет метод Symbol.iterator, возвращающий итератор. Это позволяет использовать его в циклах for...of, spread-операторе и деструктуризации.

Длинный ответ

Что такое итератор и какие методы он должен реализовывать?

Итератор — это объект, который предоставляет последовательный доступ к элементам коллекции. В JavaScript итератор должен реализовывать метод next(), который возвращает объект с двумя полями: value (текущее значение) и done (булево значение, указывающее, завершена ли итерация).

Протокол итерации

Протокол итерации состоит из двух частей: итерируемый объект (имеет метод Symbol.iterator) и сам итератор (возвращается этим методом). Итератор должен иметь метод next(), который вызывается на каждом шаге цикла.

Пример реализации

const myIterable = {
  [Symbol.iterator]() {
    let step = 0;
    return {
      next() {
        step++;
        if (step <= 3) {
          return { value: step, done: false };
        }
        return { value: undefined, done: true };
      }
    };
  }
};

for (const num of myIterable) {
  console.log(num); // 1, 2, 3
}

Где применяется

Итераторы используются в циклах for...of, spread-операторе ([...iterable]), деструктуризации массивов, а также в методах Array.from() и Promise.all(). Они лежат в основе работы многих встроенных объектов, таких как Array, Map, Set и String.

Вывод

Итераторы — это фундаментальный механизм для работы с последовательностями данных в JavaScript. Их понимание необходимо для создания собственных итерируемых структур и эффективного использования встроенных возможностей языка.

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    4

  • Сложность:

    4

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#iterator

#iterable

#next

#Symbol.iterator

#iteration protocol

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.