# Callback functions in JavaScript

Functions can be passed as parameters to other functions. Such function-parameter is called callback. Let's see how they work with an example.

Suppose we want to make a function that will take an array as the first parameter, and a callback as the second, which will be applied to each element of the array:

`function each(arr, callback) { // here is some code }`

Let's write the implementation of our function:

`function each(arr, callback) { let result = []; for (let elem of arr) { result.push( callback(elem) ); // invokes the callback function } return result; }`

Our function `each` is universal. This means that we can pass different callbacks to it, performing different operations on arrays. In this case, the code of our function will remain unchanged - only the passed callbacks will change.

For example, let's use our function to square each element of an array. To do this, we will pass the corresponding callback as a parameter:

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

And now let's raise the elements of the array to a cube. To do this, we will pass another callback that performs this operation as a parameter:

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

Given an array of numbers. Use the `each` function we created to double each element.

Given an array with strings. Use the `each` function we created to flip the characters of each string in reverse order.

Given an array with strings. Use the `each` function we created to capitalize the first character of each string.

← →
↑
en ru