简介
在本实验中,我们将探索 JavaScript 中生成器的概念。具体来说,我们将学习如何创建一个生成器函数,该函数在满足特定条件之前生成新值。通过实际的编码练习,我们将更好地理解生成器的工作原理,以及如何使用它们来简化代码并提高其性能。
This tutorial is from open-source community. Access the source code
💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版
在本实验中,我们将探索 JavaScript 中生成器的概念。具体来说,我们将学习如何创建一个生成器函数,该函数在满足特定条件之前生成新值。通过实际的编码练习,我们将更好地理解生成器的工作原理,以及如何使用它们来简化代码并提高其性能。
要开始练习编码,请打开终端/SSH 并输入 node
。完成此操作后,你可以创建一个生成器,该生成器会生成新值,直到满足给定条件为止。
要创建此生成器,请按照以下步骤操作:
seed
值初始化当前的 val
。while
循环,在使用当前 val
调用 condition
函数返回 false
时持续迭代。yield
关键字返回当前的 val
,并可选择接收一个新的种子值 nextSeed
。next
函数根据当前的 val
和 nextSeed
计算下一个值。以下是一个示例代码片段:
const generateUntil = function* (seed, condition, next) {
let val = seed;
let nextSeed = null;
while (!condition(val)) {
nextSeed = yield val;
val = next(val, nextSeed);
}
return val;
};
你可以通过使用适当的参数调用生成器来使用它。例如:
[
...generateUntil(
1,
(v) => v > 5,
(v) => ++v
)
]; // [1, 2, 3, 4, 5]
这将生成一个从 1
到 5
的值数组,因为当 val
等于 6
时满足条件 v > 5
。
恭喜你!你已经完成了“生成直到满足条件”实验。你可以在 LabEx 中练习更多实验来提升你的技能。