当条件满足时生成

JavaScriptJavaScriptBeginner
立即练习

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

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

简介

在本实验中,我们将探索如何在JavaScript中创建一个生成器函数,该函数在满足给定条件时生成新值。我们将使用 generateWhile 函数,该函数接受一个种子值、一个条件函数和一个next函数,以便根据当前值和下一个种子计算下一个值。在本实验结束时,你将能够创建自定义生成器,可用于根据特定条件和规则生成值。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("`JavaScript`")) -.-> javascript/BasicConceptsGroup(["`Basic Concepts`"]) javascript/BasicConceptsGroup -.-> javascript/variables("`Variables`") javascript/BasicConceptsGroup -.-> javascript/data_types("`Data Types`") javascript/BasicConceptsGroup -.-> javascript/arith_ops("`Arithmetic Operators`") javascript/BasicConceptsGroup -.-> javascript/loops("`Loops`") subgraph Lab Skills javascript/variables -.-> lab-28347{{"`当条件满足时生成`"}} javascript/data_types -.-> lab-28347{{"`当条件满足时生成`"}} javascript/arith_ops -.-> lab-28347{{"`当条件满足时生成`"}} javascript/loops -.-> lab-28347{{"`当条件满足时生成`"}} end

当条件为真时生成值的生成器

要开始编码,请打开终端/SSH并输入 node。这将创建一个生成器,只要满足给定条件,它就会持续生成新值。

生成器使用一个 seed 值进行初始化,该值用于初始化当前的 val。然后使用一个 while 循环进行迭代,只要使用当前 val 调用的 condition 函数返回 true

yield 关键字用于返回当前的 val,并可选择接收一个新的种子值 nextSeednext 函数用于根据当前的 valnextSeed 计算下一个值。

const generateWhile = function* (seed, condition, next) {
  let val = seed;
  let nextSeed = null;
  while (condition(val)) {
    nextSeed = yield val;
    val = next(val, nextSeed);
  }
  return val;
};

要使用生成器,请使用 seedconditionnext 函数调用它。例如,调用 [...generateWhile(1, v => v <= 5, v => ++v)] 将返回 [1, 2, 3, 4, 5]

总结

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

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