Funzioni di callback in JavaScript
Le funzioni possono essere passate come parametri ad altre funzioni. Tali funzioni-parametro sono chiamate callback (callback). Diamo un'occhiata al loro funzionamento con un esempio.
Supponiamo di voler creare una funzione che accetti come primo parametro un array, e come secondo - una callback, che verrà applicata a ogni elemento dell'array:
function each(arr, callback) {
// qui del codice
}
Scriviamo l'implementazione della nostra funzione:
function each(arr, callback) {
let result = [];
for (let elem of arr) {
result.push( callback(elem) ); // chiamiamo la funzione di callback
}
return result;
}
La nostra funzione each è universale.
Ciò significa che possiamo passarle
diverse callback, eseguendo diverse operazioni
sugli array. In questo caso il codice della nostra funzione rimarrà
invariato - cambieranno solo
le callback passate.
Facciamo un esempio: utilizzando la nostra funzione eleviamo al quadrato ogni elemento di un array. Per fare questo, passiamo come parametro la callback corrispondente:
let result = each([1, 2, 3, 4, 5], function(num) {
return num ** 2;
});
console.log(result);
Ora eleviamo gli elementi dell'array al cubo. Per fare questo, passeremo come parametro un'altra callback, che esegue questa operazione:
let result = each([1, 2, 3, 4, 5], function(num) {
return num ** 3;
});
console.log(result);
Dato un array di numeri. Utilizzando la funzione
each che abbiamo creato, raddoppia ogni
elemento.
Dato un array di stringhe. Utilizzando la funzione
each che abbiamo creato, inverti i caratteri
di ogni stringa in ordine inverso.
Dato un array di stringhe. Utilizzando la funzione
each che abbiamo creato, rendi maiuscolo
il primo carattere di ogni stringa.