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

  • Array.prototype.map: эта функция принимает функцию обратного вызова в качестве аргумента и применяет ее к каждому элементу массива, создавая новый массив с результатами. Функция обратного вызова принимает три аргумента: текущий элемент, текущий индекс и отображаемый массив.

const arr = [1, 2, 3];

const doubled = arr.map(x =› x * 2);

console.log(двойной); // [2, 4, 6]

Array.prototype.filter: эта функция принимает функцию обратного вызова в качестве аргумента и применяет ее к каждому элементу массива, создавая новый массив только с элементами, для которых обратный вызов вернул истинное значение. Функция обратного вызова принимает три аргумента: текущий элемент, текущий индекс и фильтруемый массив.

const arr = [1, 2, 3, 4, 5, 6];
const evens = arr.filter(x =› x % 2 === 0);

console.log(evens); // [2, 4, 6]

Array.prototype.reduce: эта функция принимает функцию обратного вызова в качестве аргумента и применяет ее к каждому элементу массива, уменьшая массив до одного значения. Функция обратного вызова принимает четыре аргумента: аккумулятор, текущий элемент, текущий индекс и уменьшаемый массив.

const arr = [1, 2, 3];

const sum = arr.reduce((acc, x) =› acc + x, 0);

console.log(sum); // 6

Array.prototype.forEach: эта функция принимает функцию обратного вызова в качестве аргумента и применяет ее к каждому элементу массива. Функция обратного вызова принимает три аргумента: текущий элемент, текущий индекс и просматриваемый массив.

const arr = [1, 2, 3];

arr.forEach((x, i) =› console.log(`arr[${i}] = ${x}`));

setTimeout: Эта функция принимает два аргумента: функцию обратного вызова и задержку в миллисекундах. Он планирует вызов функции обратного вызова после указанной задержки.

setTimeout(() =› console.log("Привет, мир!"), 1000);

setInterval: Эта функция принимает два аргумента: функцию обратного вызова и задержку в миллисекундах. Он планирует повторный вызов функции обратного вызова каждую указанную задержку.

setInterval(() =› console.log("Привет, мир!"), 1000);

Promise.prototype.then: Эта функция принимает функцию обратного вызова в качестве аргумента и планирует ее вызов с результатом обещания, когда обещание выполнено.

const promise = fetch("https://jsonplaceholder.typicode.com/users');

promise.then(response =› response.json())

.then(users =› console.log(users));

Promise.prototype.catch: эта функция принимает функцию обратного вызова в качестве аргумента и планирует ее вызов с указанием причины обещания, когда обещание отклонено.

const promise = fetch("https://jsonplaceholder.typicode.com/users');

promise.then(response =› response.json())

.catch(error =› console.log(error));