Passer au contenu principal
eLearner.app

Fine del Corso JavaScript

Riepilogo e sfida finale

Complimenti: hai attraversato gli 8 moduli del Corso JavaScript — dalle prime let e if fino a async/await, Promise.all e ai pattern funzionali con map, filter, reduce. Qui sotto la mappa di tutto quello che padroneggi e una sfida finale in tre tappe che li mette al lavoro insieme.

01 · Basi

  • let / const
  • tipi primitivi
  • operatori
  • if / else

02 · Stringhe e numeri

  • template literals
  • metodi stringa
  • Math
  • conversioni

03 · Collezioni

  • array
  • oggetti
  • destructuring + spread
  • iterare

04 · Funzioni

  • dichiarazioni
  • arrow
  • default / rest
  • closures

05 · Controllo del flusso

  • for / while
  • for…of / for…in
  • break / continue
  • try / catch

06 · Array funzionali

  • map / filter
  • reduce
  • find / some / every
  • sort

07 · Asincrono

  • Promise
  • async / await
  • fetch (mock)
  • errori async

08 · Pratica

  • moduli ESM
  • parser CSV
  • validator
  • scheduling

La sfida finale, in tre tappe

Immagina un'app che riceve dati dal server in formato CSV, li valida e li aggrega per presentarli all'utente. Costruisci i tre pezzi che fanno il lavoro: il parser, l'aggregatore e il caricatore parallelo. Ogni tappa combina concetti dei moduli che hai studiato — nessuna lezione nuova.

1 · Parser CSV → oggetti tipizzati

Trasforma una stringa CSV in array di oggetti, convertendo le colonne numeriche in numeri. Modulo 3 (oggetti) + Modulo 6 (map) + Modulo 8 (CSV).

Exercice#js.boss.e1
Tentatives : 0Chargement…

Definisci parseRecords(csv, colonneNumeriche) dove colonneNumeriche è un array di nomi di colonna da convertire con Number(). Ritorna l'array di oggetti.

Chargement de l'éditeur…
Afficher l'indice

Set delle colonne numeriche, split per righe, mappa ogni riga in oggetto convertendo i campi giusti con Number().

Solution disponible après 3 tentatives

2 · Aggrega per chiave con reduce

Raggruppa i record per una colonna e somma una colonna numerica. Modulo 6 (reduce) + Modulo 3 (oggetti).

Exercice#js.boss.e2
Tentatives : 0Chargement…

Definisci sommaPerChiave(records, chiave, valore) che ritorna un oggetto { gruppo: somma }. Esempio: sommaPerChiave([{citta:'Roma',n:1},{citta:'Roma',n:2},{citta:'Milano',n:5}], 'citta', 'n') -> { Roma: 3, Milano: 5 }.

Chargement de l'éditeur…
Afficher l'indice

reduce con accumulatore oggetto: acc[r[chiave]] = (acc[r[chiave]] || 0) + r[valore].

Solution disponible après 3 tentatives

3 · Carica più endpoint in parallelo

Recupera in parallelo più CSV, combina i record, e calcola la somma totale di una colonna. Modulo 7 (Promise.all + fetch) + le funzioni delle tappe precedenti.

Exercice#js.boss.e3
Tentatives : 0Chargement…

Definisci async caricaTotale(urls, colonna) che fa fetch+text() di ogni URL in parallelo, parsa ognuno con parseRecords (con [colonna] come numerico), concatena tutti i record e ritorna la somma di obj[colonna] su tutti. Ridefinisci parseRecords come nella prima sfida.

Chargement de l'éditeur…
Afficher l'indice

Promise.all su urls.map(fetch -> text), parseRecords con la colonna come numerica, flatMap, poi reduce somma.

Solution disponible après 3 tentatives

Cheatsheet stampabile

Una pagina con tutta la sintassi essenziale di JavaScript, pronta da tenere sotto mano mentre programmi.

Apri il cheatsheet

E adesso?

Il modo migliore per consolidare è pratica libera. Apri un editor (o il Playground JS quando lo sbloccherai) e prova a riscrivere a memoria gli esercizi più complessi, oppure cimentati con piccoli script da riga di comando: un contatore di parole su un file, un client HTTP minimale, un piccolo bot.