Direkt zum Hauptinhalt springen
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).

Übung#js.boss.e1
Versuche: 0Wird geladen…

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

Editor wird geladen…
Hinweis anzeigen

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

Lösung nach 3 Versuchen verfügbar

2 · Aggrega per chiave con reduce

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

Übung#js.boss.e2
Versuche: 0Wird geladen…

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 }.

Editor wird geladen…
Hinweis anzeigen

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

Lösung nach 3 Versuchen verfügbar

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.

Übung#js.boss.e3
Versuche: 0Wird geladen…

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.

Editor wird geladen…
Hinweis anzeigen

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

Lösung nach 3 Versuchen verfügbar

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.