Код Senior Итераторы и генераторы обновлено
Генератор обхода вложенного массива
Условие
Генератор, выдающий элементы вложенного массива по одному, в порядке обхода, без предварительного разглаживания.
Что проверяют тесты
плоский обход
глубокая вложенность
пустой
лениво: не разглаживает заранее
Как подойти
yield* делает рекурсивный генератор двухстрочным. Главное преимущество перед flat(Infinity) - ленивость: элементы достаются по одному, и если потребитель остановился после третьего, остальная структура даже не просматривается. На больших или бесконечных структурах это принципиально.
Подсказки: 2
- yield* передаёт управление вложенному генератору.
- Ленивость получается сама: рекурсия разворачивается по мере запросов.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.