【问题标题】:Recursive Generator Javascript递归生成器 Javascript
【发布时间】:2020-08-04 10:43:05
【问题描述】:

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

【问题讨论】:

标签: javascript recursion generator


【解决方案1】:

您需要 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)
}

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

【讨论】:

    猜你喜欢
    • 2021-09-27
    • 2015-12-23
    • 1970-01-01
    • 1970-01-01
    • 2019-08-25
    • 2021-05-22
    • 2016-05-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多