Как создать функцию с определенным количеством аргументов
Чтобы создать функцию, которая принимает определенное количество аргументов и игнорирует любые дополнительные аргументы, следуйте этим шагам:
-
Откройте Терминал/SSH и введите node
, чтобы начать практиковать программирование.
-
Используйте следующий код, чтобы создать вашу функцию:
const ary =
(fn, n) =>
(...args) =>
fn(...args.slice(0, n));
-
Вызовите функцию, которую вы только что создали, ary
, с двумя аргументами: функцией, для которой вы хотите ограничить аргументы (fn
), и числом аргументов, до которого вы хотите ограничить ее (n
).
-
Теперь вы можете использовать новую функцию, чтобы ограничить количество аргументов для любой функции, которую вы хотите. Для этого вызовите свою новую функцию с оператором расширения (...
) и аргументами, которые вы хотите ограничить.
Вот пример того, как использовать вашу новую функцию:
const firstTwoMax = ary(Math.max, 2);
[[2, 6, "a"], [6, 4, 8], [10]].map((x) => firstTwoMax(...x)); // [6, 6, 10]
В этом примере firstTwoMax
— новая функция, которая ограничивает функцию Math.max
так, чтобы она принимала только первые два аргумента. Метод map
используется для применения новой функции к каждому массиву в внешнем массиве, возвращая максимальное значение первых двух элементов каждого внутреннего массива.