在 JavaScript 中限制函数参数

Beginner

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

简介

在本实验中,我们将探索 JavaScript 中的「函数元数(Function Arity)」概念。本实验的目的是创建一个高阶函数,该函数接受一个函数和一个数字 n 作为参数,并返回一个新函数,该新函数最多只接受 n 个参数,忽略任何额外的参数。这将帮助我们理解如何在 JavaScript 中限制传递给函数的参数数量。

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

如何创建一个接受特定数量参数的函数

要创建一个接受特定数量参数并忽略任何额外参数的函数,请按以下步骤操作:

  1. 打开终端/SSH 并输入 node 以开始练习编码。

  2. 使用以下代码创建你的函数:

const ary =
  (fn, n) =>
  (...args) =>
    fn(...args.slice(0, n));
  1. 使用两个参数调用你刚刚创建的函数 ary:你想要限制参数数量的函数 (fn) 和你想要将其限制到的参数数量 (n)。

  2. 现在你可以使用这个新函数来限制你想要的任何函数的参数数量。要做到这一点,使用展开运算符 (...) 和你想要限制的参数来调用你的新函数。

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

const firstTwoMax = ary(Math.max, 2);
[[2, 6, "a"], [6, 4, 8], [10]].map((x) => firstTwoMax(...x)); // [6, 6, 10]

在这个示例中,firstTwoMax 是一个新函数,它将 Math.max 函数限制为只接受前两个参数。map 方法用于将新函数应用于外部数组中的每个数组,返回每个内部数组前两个元素中的最大值。

总结

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