Вот несколько примеров функций высшего порядка в 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));