Introduzione
Le funzioni di ordine superiore in JavaScript, come map, filter e reduce, sono strumenti potenti per la manipolazione dei dati. In questo tutorial, esploreremo come combinare queste funzioni per creare pipeline di elaborazione dati. Impareremo a costruire un flusso di lavoro che ci permetta di trasformare, filtrare e aggregare i dati in modo efficiente e leggibile.
Codice completo
const dati = [
{ nome: ´Mario´, età: 25, stipendio: 3000 },
{ nome: ´Luigi´, età: 30, stipendio: 4000 },
{ nome: ´Peach´, età: 28, stipendio: 3500 },
{ nome: ´Bowser´, età: 35, stipendio: 5000 },
];
// Pipeline di elaborazione
const pipelineElaborazione = (dati) => {
return dati
.filter(persona => persona.età > 26) // Filtra le persone con età superiore a 26
.map(persona => ({ nome: persona.nome, stipendio: persona.stipendio * 1.1 })) // Aumenta lo stipendio del 10%
.reduce((acc, persona) => acc + persona.stipendio, 0); // Somma gli stipendi
};
const stipendioTotale = pipelineElaborazione(dati);
console.log(`Stipendio totale delle persone con età superiore a 26: €${stipendioTotale.toFixed(2)}`);
Spiegazione
Nel codice sopra, abbiamo un array di oggetti che rappresentano persone, ciascuna con un nome, un´età e uno stipendio. La funzione pipelineElaborazione utilizza una combinazione di filter, map e reduce per elaborare questi dati in tre passaggi distinti:
- Filtraggio: Utilizziamo
filterper ottenere solo le persone con un´età superiore a 26 anni. Questo ci permette di concentrarci solo sui dati rilevanti. - Trasformazione: Con
map, creiamo un nuovo array in cui aumentiamo lo stipendio di ogni persona del 10%. Qui stiamo anche estraendo solo il nome e lo stipendio, riducendo il numero di proprietà che ci interessano. - Aggregazione: Infine, utilizziamo
reduceper sommare gli stipendi delle persone filtrate e trasformate. Iniziamo con un accumulatoreaccimpostato a 0 e sommiamo ogni stipendio al valore accumulato.
Il risultato finale è il totale degli stipendi delle persone che soddisfano i criteri di età, stampato in console.
Best practice
Quando si utilizzano funzioni di ordine superiore per creare pipeline di elaborazione dati, è importante seguire alcune best practice:
- Chiarezza del codice: Utilizza nomi di funzioni e variabili descrittivi per rendere il codice facilmente comprensibile. Ad esempio,
pipelineElaborazionechiarisce immediatamente il suo scopo. - Composizione: Mantieni le funzioni piccole e focalizzate su un singolo compito. Questo rende più facile il testing e la manutenzione.
- Immutabilità: Cerca di non modificare gli array originali. Utilizza sempre metodi che restituiscono nuovi array, come
mapefilter, per evitare effetti collaterali indesiderati. - Gestione degli errori: Considera l´uso di controlli per gestire dati imprevisti o non validi. Ad esempio, verifica che i valori siano numerici prima di eseguire operazioni matematiche.
Riepilogo
In questo tutorial, abbiamo esplorato come utilizzare le funzioni di ordine superiore map, filter e reduce per creare pipeline di elaborazione dati in JavaScript. Abbiamo visto come filtrare, trasformare e aggregare i dati in modo chiaro e conciso. Seguendo le best practice, possiamo scrivere codice più leggibile e manutenibile.
Approfondisci con risorse ufficiali
Per ulteriori informazioni sulle funzioni di ordine superiore in JavaScript, ti consiglio di consultare la documentazione ufficiale:
Buona programmazione!
