简介
在本实验中,我们将探索 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 中练习更多实验来提升你的技能。