生成直到满足条件

JavaScriptJavaScriptBeginner
立即练习

This tutorial is from open-source community. Access the source code

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在本实验中,我们将探索 JavaScript 中生成器的概念。具体来说,我们将学习如何创建一个生成器函数,该函数在满足特定条件之前生成新值。通过实际的编码练习,我们将更好地理解生成器的工作原理,以及如何使用它们来简化代码并提高其性能。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("`JavaScript`")) -.-> javascript/BasicConceptsGroup(["`Basic Concepts`"]) javascript(("`JavaScript`")) -.-> javascript/AdvancedConceptsGroup(["`Advanced Concepts`"]) javascript/BasicConceptsGroup -.-> javascript/variables("`Variables`") javascript/BasicConceptsGroup -.-> javascript/data_types("`Data Types`") javascript/BasicConceptsGroup -.-> javascript/arith_ops("`Arithmetic Operators`") javascript/BasicConceptsGroup -.-> javascript/comp_ops("`Comparison Operators`") javascript/BasicConceptsGroup -.-> javascript/loops("`Loops`") javascript/AdvancedConceptsGroup -.-> javascript/spread_rest("`Spread and Rest Operators`") subgraph Lab Skills javascript/variables -.-> lab-28346{{"`生成直到满足条件`"}} javascript/data_types -.-> lab-28346{{"`生成直到满足条件`"}} javascript/arith_ops -.-> lab-28346{{"`生成直到满足条件`"}} javascript/comp_ops -.-> lab-28346{{"`生成直到满足条件`"}} javascript/loops -.-> lab-28346{{"`生成直到满足条件`"}} javascript/spread_rest -.-> lab-28346{{"`生成直到满足条件`"}} end

生成值直到满足给定条件

要开始练习编码,请打开终端/SSH 并输入 node。完成此操作后,你可以创建一个生成器,该生成器会生成新值,直到满足给定条件为止。

要创建此生成器,请按照以下步骤操作:

  • 使用 seed 值初始化当前的 val
  • 使用 while 循环,在使用当前 val 调用 condition 函数返回 false 时持续迭代。
  • 使用 yield 关键字返回当前的 val,并可选择接收一个新的种子值 nextSeed
  • 使用 next 函数根据当前的 valnextSeed 计算下一个值。

以下是一个示例代码片段:

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]

这将生成一个从 15 的值数组,因为当 val 等于 6 时满足条件 v > 5

总结

恭喜你!你已经完成了“生成直到满足条件”实验。你可以在 LabEx 中练习更多实验来提升你的技能。

您可能感兴趣的其他 JavaScript 教程