相关疑难解决方法(0)

JavaScript中的递归生成器

我正在尝试为顺序遍历编写递归生成器.

class Tree {
  *inOrderTraversal() {
    function* helper(node) {
      if (node.left !== null) {
        // this line is executed, but helper is not being called
        helper(node.left); 
      }
      yield node.value;
      if (node.right !== null) {
        helper(node.right);
      }
    }

    for (let i of helper(this.root)) {
      yield i;
    }
  }
  // other methods omitted
}
Run Code Online (Sandbox Code Playgroud)

我这样称呼发电机:

const tree = new Tree();
tree.add(2);
tree.add(1);
tree.add(3);

for (let i of tree.inOrderTraversal()) {
    console.log(i); // only prints 2
}
Run Code Online (Sandbox Code Playgroud)

为什么发电机只能屈服2?为什么它至少没有产生1之前2? …

javascript recursion generator ecmascript-6

20
推荐指数
2
解决办法
4934
查看次数

标签 统计

ecmascript-6 ×1

generator ×1

javascript ×1

recursion ×1