JavaScript 中的展开函数

JavaScriptJavaScriptBeginner
立即练习

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

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

简介

在本实验中,我们将探索 JavaScript 中的 unfold() 函数。该函数允许我们通过使用初始种子值反复调用迭代器函数来创建一个数组,直到该函数返回 false。通过本实验,我们将学习如何使用 unfold() 函数,以及它如何用于简化某些编程任务。


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/comp_ops("`Comparison Operators`") javascript/BasicConceptsGroup -.-> javascript/loops("`Loops`") javascript/BasicConceptsGroup -.-> javascript/array_methods("`Array Methods`") subgraph Lab Skills javascript/variables -.-> lab-28679{{"`JavaScript 中的展开函数`"}} javascript/data_types -.-> lab-28679{{"`JavaScript 中的展开函数`"}} javascript/arith_ops -.-> lab-28679{{"`JavaScript 中的展开函数`"}} javascript/comp_ops -.-> lab-28679{{"`JavaScript 中的展开函数`"}} javascript/loops -.-> lab-28679{{"`JavaScript 中的展开函数`"}} javascript/array_methods -.-> lab-28679{{"`JavaScript 中的展开函数`"}} end

展开数组

要使用迭代器函数和初始种子值创建数组,请执行以下步骤:

  1. 打开终端/SSH 并输入 node 开始练习编码。
  2. 使用 while 循环和 Array.prototype.push() 反复调用迭代器函数,直到它返回 false
  3. 迭代器函数应接受一个参数(seed),并始终返回一个包含两个元素的数组([value, nextSeed])或 false 以终止。

使用以下代码实现 unfold 函数:

const unfold = (fn, seed) => {
  let result = [],
    val = [null, seed];
  while ((val = fn(val[1]))) result.push(val[0]);
  return result;
};

以下是如何使用 unfold 函数的示例:

var f = (n) => (n > 50 ? false : [-n, n + 10]);
unfold(f, 10); // [-10, -20, -30, -40, -50]

这将生成一个数组,其中的值由迭代器函数 f 从初始种子值 10 开始生成。迭代器函数在每一步生成一个包含两个元素的数组:当前种子值的相反数和下一个种子值,下一个种子值递增 10。这个过程会一直持续,直到种子值大于 50,此时函数返回 false

总结

恭喜你!你已经完成了“展开数组”实验。你可以在 LabEx 中练习更多实验来提升你的技能。

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