🚀 Nuova versione beta disponibile! Feedback o problemi? Contattaci

Esercizi Funzioni Callback Javascript

Codegrind Team•Jul 22 2023

Ecco degli esercizi semplici con soluzione per praticare le basi delle funzioni callback in Javascript.

Esercizio 1

Definire una funzione che accetta un callback e lo richiama:
function eseguiCallback(callback) {
  callback();
}

function mioCallback() {
  console.log("Eseguo il callback!");
}

eseguiCallback(mioCallback);

Esercizio 2

Definire una funzione che accetta un valore e un callback, e richiama il callback passando il valore come argomento:
function utilizzaCallback(valore, callback) {
  callback(valore);
}

function mioCallback(valore) {
  console.log("Valore ricevuto:", valore);
}

utilizzaCallback(42, mioCallback);

Esercizio 3

Simulare una chiamata asincrona utilizzando un setTimeout e un callback:
function chiamataAsincrona(callback) {
  setTimeout(function () {
    callback("Risposta dalla chiamata asincrona");
  }, 2000);
}

function mioCallback(risposta) {
  console.log("Risposta ricevuta:", risposta);
}

chiamataAsincrona(mioCallback);

Esercizio 4

Definire una funzione che accetta un array e un callback, e richiama il callback per ogni elemento dell'array:
function elaboraArray(array, callback) {
  for (let i = 0; i < array.length; i++) {
    callback(array[i]);
  }
}

function mioCallback(elemento) {
  console.log("Elemento:", elemento);
}

const array = [1, 2, 3, 4, 5];
elaboraArray(array, mioCallback);

Esercizio 5

Utilizzare un callback per ordinare un array di oggetti:
const persone = [
  { nome: "Alice", eta: 25 },
  { nome: "Bob", eta: 30 },
  { nome: "Charlie", eta: 20 },
];

function confrontaEta(a, b) {
  return a.eta - b.eta;
}

persone.sort(confrontaEta);

console.log(persone);

Esercizio 6

Utilizzare un callback per filtrare gli elementi di un array:
const numeri = [1, 2, 3, 4, 5];

function filtraPari(numero) {
  return numero % 2 === 0;
}

const numeriPari = numeri.filter(filtraPari);

console.log(numeriPari);

Esercizio 7

Utilizzare un callback per calcolare la somma degli elementi di un array:
const numeri = [1, 2, 3, 4, 5];

function sommaElementi(total, numero) {
  return total + numero;
}

const somma = numeri.reduce(sommaElementi, 0);

console.log("Somma:", somma);

Esercizio 8

Utilizzare un callback per mappare gli elementi di un array a nuovi valori:
const numeri = [1, 2, 3, 4, 5];

function raddoppia(numero) {
  return numero * 2;
}

const numeriRaddoppiati = numeri.map(raddoppia);

console.log(numeriRaddoppiati);

Esercizio 9

Utilizzare un callback per eseguire un'azione su ogni carattere di una stringa:
const stringa = "Hello, world!";

function stampaCarattere(carattere) {
  console.log(carattere);
}

Array.from(stringa).forEach(stampaCarattere);

Esercizio 10

Utilizzare un callback per simulare la gestione degli errori in una finta chiamata asincrona:
function eseguiChiamata(callbackSuccesso, callbackErrore) {
  // Simulazione di una chiamata asincrona
  const esito = Math.random() < 0.5;

  if (esito) {
    callbackSuccesso("Chiamata riuscita");
  } else {
    callbackErrore("Errore durante la chiamata");
  }
}

function callbackSuccesso(risposta) {
  console.log("Successo:", risposta);
}

function callbackErrore(errore) {
  console.error("Errore:", errore);
}

eseguiChiamata(callbackSuccesso, callbackErrore);