在 JavaScript 中高效组合函数

Beginner

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

简介

在本实验中,我们将探索 JavaScript 中函数组合的概念。我们将学习如何将多个函数组合成一个函数,该函数按从左到右的顺序执行一系列操作。通过使用 pipeFunctions 函数,我们将发现函数组合的好处,以及它如何简化我们的代码并使其更具可读性。

这是一个实验(Guided Lab),提供逐步指导来帮助你学习和实践。请仔细按照说明完成每个步骤,获得实际操作经验。根据历史数据,这是一个 初级 级别的实验,完成率为 100%。获得了学习者 100% 的好评率。

使用管道进行函数组合

要开始使用管道进行编码练习,请打开终端/SSH 并输入 node

pipeFunctions 函数使用 Array.prototype.reduce() 和展开运算符 (...) 来执行从左到右的函数组合。第一个(最左边的)函数可以接受一个或多个参数,而其余函数必须是一元函数。

const pipeFunctions = (...fns) =>
  fns.reduce(
    (f, g) =>
      (...args) =>
        g(f(...args))
  );

以下是一个如何使用 pipeFunctions 创建新函数 multiplyAndAdd5 的示例,该函数将两个数字相乘,然后将 5 加到结果上:

const add5 = (x) => x + 5;
const multiply = (x, y) => x * y;
const multiplyAndAdd5 = pipeFunctions(multiply, add5);
multiplyAndAdd5(5, 2); // 15

在这个示例中,multiplyAndAdd5 是一个新函数,它接受两个参数 52,首先对它们应用 multiply,结果为 10,然后对结果应用 add5,结果为 15

总结

恭喜你!你已经完成了函数管道实验。你可以在 LabEx 中练习更多实验来提升你的技能。