Функции-Параллели в JavaScript

Beginner

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

Введение

В этом лабе мы будем изучать концепцию Функций-Параллелей в JavaScript. Мы узнаем, как создать функцию, которая принимает несколько функций в качестве аргументов и возвращает новую функцию, которая применяет эти функции к одному и тому же набору аргументов, возвращая массив результатов. В конце этого лабы у вас будет лучше понимание, как использовать Функции-Параллели для упрощения кода и повышения его эффективности.

Объяснение Функций-Параллелей

Для использования функции juxt сначала откройте Терминал/SSH и введите node, чтобы начать практиковаться в написании кода. Функция juxt принимает несколько функций в качестве аргументов и возвращает функцию, которая представляет собой параллельное выполнение этих функций.

Для создания функции juxt используйте Array.prototype.map(), чтобы вернуть fn, которая может принимать переменное количество args. Когда fn вызывается, она должна возвращать массив, содержащий результат применения каждой fn к args.

Вот пример реализации функции juxt:

const juxt =
  (...fns) =>
  (...args) =>
    [...fns].map((fn) => [...args].map(fn));

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

Вот несколько примеров использования функции juxt:

juxt(
  (x) => x + 1,
  (x) => x - 1,
  (x) => x * 10
)(1, 2, 3); // [[2, 3, 4], [0, 1, 2], [10, 20, 30]]
juxt(
  (s) => s.length,
  (s) => s.split(" ").join("-")
)("happy coding"); // [[18], ['happy-coding']]

В первом примере функция juxt принимает три функции в качестве аргументов и возвращает новую функцию. Когда эта новая функция вызывается с аргументами 1, 2, 3, она применяет каждую из трех функций к этим аргументам и возвращает массив массивов, содержащих результаты.

Во втором примере функция juxt принимает две функции в качестве аргументов и возвращает новую функцию. Когда эта новая функция вызывается с аргументом 'happy-coding', она применяет каждую из двух функций к этому аргументу и возвращает массив массивов, содержащих результаты.

Резюме

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