Рекурсивный генератор Javascript - PullRequest
1 голос
/ 21 апреля 2020

Значение для l oop не возвращает возрастающую переменную счета.

Действует так, как будто функция диапазона не вызывается, но это так.

function* range (limit, count = 0) {
  if (count >= limit) return
  yield count
  range(limit, count + 1) 
} 


for (let i of range(16)) {
  console.log(i)
}

1 Ответ

2 голосов
/ 21 апреля 2020

Вам нужно yield * диапазон от вашей функции генератора.

Попробуйте:

function* range (limit, count = 0) {
  if (count >= limit) return
  yield count
  yield * range(limit, count + 1) 
} 


for (let i of range(16)) {
  console.log(i)
}

Поскольку это рекурсивно, вы должны вернуть результат обратно родителю. в основном.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...