Funções de Callback em JavaScript

Funções podem ser passadas como parâmetros para outras funções. Tais funções-parâmetro são chamadas de callbacks (callback). Vamos ver como trabalhar com elas através de um exemplo.

Suponha que queremos fazer uma função que, pelo primeiro parâmetro, receberá um array, e pelo segundo - um callback, que será aplicado a cada elemento do array:

javascriptfunction each(arr, callback) {
  // algum código aqui
}

Vamos escrever a implementação da nossa função:

javascriptfunction each(arr, callback) {
  let result = [];
  
  for (let elem of arr) {
    result.push( callback(elem) ); // chamamos a função de callback
  }
  
  return result;
}

Nossa função each é universal. Isso significa que podemos passar para ela diferentes callbacks, executando diferentes operações sobre os arrays. Ao mesmo tempo, o código da nossa função permanecerá inalterado - apenas os callbacks passados é que mudarão.

Vamos, por exemplo, usar nossa função para elevar ao quadrado cada elemento de um array qualquer. Para isso, passaremos como parâmetro o callback correspondente:

javascriptlet result = each([1, 2, 3, 4, 5], function(num) {
  return num ** 2;
});

console.log(result);

Agora, vamos elevar os elementos do array ao cubo. Para isso, passaremos como parâmetro um callback diferente, que executa esta operação:

javascriptlet result = each([1, 2, 3, 4, 5], function(num) {
  return num ** 3;
});

console.log(result);
Задание 1

Dado um array com números. Usando a função each que criamos, dobre cada elemento.

Задание 2

Dado um array com strings. Usando a função each que criamos, inverta os caracteres de cada string em ordem reversa.

Задание 3

Dado um array com strings. Usando a função each que criamos, torne maiúscula a primeira letra de cada string.