Понимание функций высшего порядка в JavaScript
ДомДом > Новости > Понимание функций высшего порядка в JavaScript

Понимание функций высшего порядка в JavaScript

Aug 17, 2023

Узнайте, насколько гибкими могут быть функции JavaScript и как их можно использовать для создания гибкого, многократно используемого кода.

JavaScript — мощный язык, поддерживаемый большинством современных браузеров, и это отличный выбор для новичков.

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

Самое простое определение функции высшего порядка — это функция, которая выполняет операции над другими функциями, принимая их в качестве параметров или возвращая их. Функции высшего порядка широко используются в парадигме функционального программирования. Если вы только начинаете работать с JavaScript, функции высшего порядка могут быть немного сложны для понимания.

Рассмотрим следующий пример:

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

Цельтрансформировать Функция заключается в изменении элементов массива. Во-первых, код определяет переменнуюрезультатМассиви привязывает его к пустому массиву.

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

Приведенный выше блок кода назначает анонимную функцию, возвращаемую функциейтрансформироватьфункция постоянной переменнойфункция1.фнвозвращает продуктИкскоторый является заменоймассив [я].

Код также передает массив в качестве параметрафункция1 а затем записывает результат на консоль. Более короткий способ записи будет таким:

В JavaScript есть встроенная функция высшего порядка, которая по сути делает то же самое, что итрансформировать, о котором мы поговорим позже.

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

Этот блок кода определяет функцию, которая делает то, что вы можете предположить: она проверяет элементы массива, соответствующие определенному условию, и преобразует их с помощьютрансформировать() функция. Чтобы использовать эту функцию, вы делаете что-то вроде этого:

в отличие оттрансформироватьфункция,фильтрИтрансформироватьфункция принимает две функции в качестве параметров:фнисостояние . состояние функция проверяет, является ли переданный параметр четным числом, и возвращает true. В противном случае он возвращает ложь.

Еслисостояниепринимает значение true (условие выполнено), только тогдатрансформировать вызвана функция. Эта логика может пригодиться, если вы работаете с массивом и хотите преобразовать определенные элементы. Если вы запустите этот код в консоли браузера, вы должны получить следующий ответ:

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

Методы массивов, такие как map(), представляют собой функции более высокого порядка, которые упрощают манипулирование массивами. Вот как это работает.

Когда вы входите в системупреобразованныйArrayв консоли браузера вы должны получить тот же результат, что и при использованиитрансформироватьупомянутая ранее функция:

массив.карта() принимает два параметра: первый параметр относится к самому элементу, а второй параметр относится к индексу элемента (позиции в массиве). всего лишь