简介
在本实验中,我们将探索如何在JavaScript中创建一个生成器函数,该函数在满足给定条件时生成新值。我们将使用 generateWhile
函数,该函数接受一个种子值、一个条件函数和一个next函数,以便根据当前值和下一个种子计算下一个值。在本实验结束时,你将能够创建自定义生成器,可用于根据特定条件和规则生成值。
This tutorial is from open-source community. Access the source code
💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版
在本实验中,我们将探索如何在JavaScript中创建一个生成器函数,该函数在满足给定条件时生成新值。我们将使用 generateWhile
函数,该函数接受一个种子值、一个条件函数和一个next函数,以便根据当前值和下一个种子计算下一个值。在本实验结束时,你将能够创建自定义生成器,可用于根据特定条件和规则生成值。
要开始编码,请打开终端/SSH并输入 node
。这将创建一个生成器,只要满足给定条件,它就会持续生成新值。
生成器使用一个 seed
值进行初始化,该值用于初始化当前的 val
。然后使用一个 while
循环进行迭代,只要使用当前 val
调用的 condition
函数返回 true
。
yield
关键字用于返回当前的 val
,并可选择接收一个新的种子值 nextSeed
。next
函数用于根据当前的 val
和 nextSeed
计算下一个值。
const generateWhile = function* (seed, condition, next) {
let val = seed;
let nextSeed = null;
while (condition(val)) {
nextSeed = yield val;
val = next(val, nextSeed);
}
return val;
};
要使用生成器,请使用 seed
、condition
和 next
函数调用它。例如,调用 [...generateWhile(1, v => v <= 5, v => ++v)]
将返回 [1, 2, 3, 4, 5]
。
恭喜你!你已经完成了“当条件满足时生成”实验。你可以在LabEx中练习更多实验来提升你的技能。