Funciones callback en JavaScript
Las funciones se pueden pasar como parámetros a otras funciones. Estas funciones-parámetro se denominan callbacks (callback). Veamos cómo trabajar con ellas mediante un ejemplo.
Supongamos que queremos hacer una función que, como primer parámetro, reciba un array, y como segundo, un callback, que aplicará a cada elemento del array:
function each(arr, callback) {
// aquí hay algún código
}
Escribamos la implementación de nuestra función:
function each(arr, callback) {
let result = [];
for (let elem of arr) {
result.push( callback(elem) ); // llamamos a la función callback
}
return result;
}
Nuestra función each es universal.
Esto significa que podemos pasarle
diferentes callbacks, realizando diferentes operaciones
sobre los arrays. Al mismo tiempo, el código de nuestra función permanecerá
inalterado - solo cambiarán los
callbacks que se pasen.
Como ejemplo, usemos nuestra función para elevar al cuadrado cada elemento de un array cualquiera. Para ello, pasaremos como parámetro el callback correspondiente:
let result = each([1, 2, 3, 4, 5], function(num) {
return num ** 2;
});
console.log(result);
Y ahora elevemos los elementos del array al cubo. Para ello, pasaremos como parámetro otro callback diferente, que realice esta operación:
let result = each([1, 2, 3, 4, 5], function(num) {
return num ** 3;
});
console.log(result);
Dado un array con números. Usando la función
each que creamos, duplique cada
elemento.
Dado un array con cadenas. Usando la función
each que creamos, invierta los caracteres
de cada cadena en orden inverso.
Dado un array con cadenas. Usando la función
each que creamos, ponga en mayúscula
el primer carácter de cada cadena.