Ограничение аргументов функций в JavaScript

JavaScriptJavaScriptBeginner
Практиковаться сейчас

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

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом лабе мы будем исследовать концепцию Function Arity в JavaScript. Цель этого лабара — создать высший порядок функцию, которая принимает функцию и число n в качестве аргументов и возвращает новую функцию, которая принимает не более n аргументов, игнорируя любые дополнительные. Это поможет нам понять, как ограничить количество аргументов, передаваемых в функцию в 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/AdvancedConceptsGroup -.-> javascript/higher_funcs("Higher-Order Functions") javascript/AdvancedConceptsGroup -.-> javascript/spread_rest("Spread and Rest Operators") subgraph Lab Skills javascript/variables -.-> lab-28322{{"Ограничение аргументов функций в JavaScript"}} javascript/data_types -.-> lab-28322{{"Ограничение аргументов функций в JavaScript"}} javascript/arith_ops -.-> lab-28322{{"Ограничение аргументов функций в JavaScript"}} javascript/comp_ops -.-> lab-28322{{"Ограничение аргументов функций в JavaScript"}} javascript/higher_funcs -.-> lab-28322{{"Ограничение аргументов функций в JavaScript"}} javascript/spread_rest -.-> lab-28322{{"Ограничение аргументов функций в JavaScript"}} end

Как создать функцию с определенным количеством аргументов

Чтобы создать функцию, которая принимает определенное количество аргументов и игнорирует любые дополнительные аргументы, следуйте этим шагам:

  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 используется для применения новой функции к каждому массиву в внешнем массиве, возвращая максимальное значение первых двух элементов каждого внутреннего массива.

Резюме

Поздравляем! Вы завершили лабу по Function Arity. Вы можете практиковать в более лабах в LabEx, чтобы улучшить свои навыки.