# Функции-коллбэки в JavaScript

Функции можно передавать параметрами в другие функции. Такие функции-параметры называются коллбэками (англ. callback). Давайте посмотрим работу с ними на примере.

Пусть мы хотим сделать функцию, которая первым параметром будет принимать массив, а вторым - коллбэк, который будет применять к каждому элементу массива:

`function each(arr, callback) { // тут какой-то код }`

Напишем реализацию нашей функции:

`function each(arr, callback) { let result = []; for (let elem of arr) { result.push( callback(elem) ); // вызываем функцию-коллбэк } return result; }`

Наша функция `each` - универсальная. Это значит, что мы можем передавать в нее различные коллбэки, выполняя разные операции над массивами. При этом код нашей функции останется неизменным - будут меняться только передаваемые коллбэки.

Давайте для примера с помощью нашей функции возведем в квадрат каждый элемент какого-нибудь массива. Для этого передадим параметром соответствующий коллбэк:

`let result = each([1, 2, 3, 4, 5], function(num) { return num ** 2; }); console.log(result);`

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

`let result = each([1, 2, 3, 4, 5], function(num) { return num ** 3; }); console.log(result);`

Дан массив с числами. С помощью созданной нами функции `each` увеличьте каждый элемент в два раза.

Дан массив со строками. С помощью созданной нами функции `each` переверните символы каждой строки в обратном порядке.

Дан массив со строками. С помощью созданной нами функции `each` сделайте заглавным первый символ каждой строки.

←→
↑
en ru