递归生成器Javascript

递归生成器Javascript,javascript,recursion,generator,Javascript,Recursion,Generator,for循环没有返回递增计数变量 它的作用就像没有调用range函数一样,但它是 function* range (limit, count = 0) { if (count >= limit) return yield count range(limit, count + 1) } for (let i of range(16)) { console.log(i) } 您需要yield*generator函数的范围 尝试一下: function* range (

for循环没有返回递增计数变量

它的作用就像没有调用range函数一样,但它是

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


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


您需要
yield*
generator函数的范围

尝试一下:

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)
}

因为它是递归的,所以您基本上需要将结果返回给父级。

这是否回答了您的问题?