Выбор ответа Junior Итераторы и генераторы обновлено
Что делает объект итерируемым
Вопрос
Что нужно добавить объекту, чтобы по нему работал for...of?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Метод Symbol.iterator, возвращающий итератор с next(). for...of вызывает у объекта Symbol.iterator и затем дёргает next() у полученного итератора, пока не придёт done: true. length и индексы делают объект массивоподобным: его понимает Array.from, но не for...of.
Варианты ответа
- Свойство
lengthи числовые ключи0,1,2, как у массива - Метод
next(), который возвращает{ value, done } - Метод
[Symbol.iterator](), возвращающий итератор сnext()правильный ответ - Метод
forEach, которыйfor...ofвызовет для каждого элемента
Разбор
for...of вызывает у объекта [Symbol.iterator]() и затем дёргает next() у полученного итератора, пока не придёт done: true. length и индексы делают объект массивоподобным: его понимает Array.from, но не for...of. Один только next() делает объект итератором, но не итерируемым (если только он не возвращает сам себя из [Symbol.iterator]). forEach к протоколу итерации отношения не имеет.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.