生成器是 ES6 新增的一个极为灵活的结构,拥有在一个函数块内暂停和恢复代码执行的能,生成器可以自定义迭代器和实现携程
请你利用生成器实现一个随机数字序列生成器。
/** * @description 随机生成数字序列生成器函数 * @method *isIcreateRandomGeneratorterable * @param {number}start 生成数字的范围下限 * @param {number}end 生成数字的范围上限 * @param {number}num 生成数字的个数 **/ function* createRandomGenerator(start = 0, end = 10, num = 5) { // your code here } // 测试用例 let randowSequence = createRandomGenerator(0, 20, 10); //调用生成器,随机生成范围是1-20的10个数字 let randowSequence2 = createRandomGenerator(10, 100, 50); //调用生成器,随机生成范围是10-100的5个数字 for (let number1 of randowSequence) { console.log(number1); } //打印出10个范围为1-20的数字 for (let number2 of randowSequence2) { console.log(number2); } //打印出5个范围为10-100的数字
请你运用生成器实现二叉树遍历
class BinaryTree { constructor(value, left = null, right = null) { this.value = value; this.left = left; this.right = right; } /** Prefix iteration */ *[Symbol.iterator]() { // your cod here } } //测试用例 //以下代码创建一个二叉树 const tree = new BinaryTree( "a", new BinaryTree("b", new BinaryTree("c"), new BinaryTree("d")), new BinaryTree("e") ); //并通过for-of对二叉树进行迭代: for (const x of tree) { console.log(x); } // Output: // a // b // c // d // e
function* generatorFn() { console.log("执行生成器函数"); yield 1; } const g = generatorFn();
function* genr() { console.log(yield); console.log(yield); } let g = genr(); g.next("Start"); g.next("Step 1"); g.next("Step 2");
更多相关技术内容咨询欢迎前往并持续关注六星社区了解详情。
长按或扫描下方二维码,免费获取 Python公开课和大佬打包整理的几百G的学习资料,内容包含但不限于Python电子书、教程、项目接单、源码等等
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!