Встречается на собеседованиях • сегодня

Какими свойствами должна обладать структура, чтобы по ней можно было итерироваться

Структура должна быть итерируемой, если она реализует итераторный протокол. В JavaScript это означает наличие метода [Symbol.iterator](), который возвращает объект с методом next().

Пример с массивом (уже итерируемым):

javascript
const arr = [1, 2, 3];
const iterator = arr[Symbol.iterator]();
console.log(iterator.next()); // { value: 1, done: false }

Пример кастомной итерируемой структуры:

javascript
const range = {
  from: 1,
  to: 3,
  [Symbol.iterator]() {
    let current = this.from;
    return {
      next: () => ({
        value: current <= this.to ? current++ : undefined,
        done: current > this.to + 1
      })
    };
  }
};

for (const num of range) console.log(num); // 1, 2, 3

Ключевые требования:

  • Наличие [Symbol.iterator]().
  • Итератор должен возвращать объект с методом next().
  • next() возвращает { value: any, done: boolean }.

Также можно использовать генераторы (function*) для упрощения.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы