Il ciclo for è una delle istruzioni più usate per eseguire ripetutamente una certa logica.
In JavaScript è formato dalla parola chiave for, da un'intestazione racchiusa tra parentesi tonde (()) e da un blocco di codice, racchiuso tra parentesi graffe ({}), che contiene il corpo del ciclo.
for (initialization; condition; step) {
// code that is executed repeatedly as long as the condition is true
}
L'inizializzazione di solito prepara una variabile contatore, la condizione controlla se il ciclo deve continuare o fermarsi, e il passo incrementa il contatore alla fine di ogni ripetizione. Le singole parti dell'intestazione sono separate da punti e virgola.
const list = ['a', 'b', 'c'];
for (let i = 0; i < list.length; i++) {
// code that should be executed for each item list[i]
}
Il passo spesso si definisce usando l'operatore di incremento o di decremento di JavaScript, come nell'esempio qui sopra.
Questi operatori modificano una variabile sul posto.
++ aggiunge uno a un numero, -- sottrae uno da un numero.
let i = 3;
i++;
// i is now 4
let j = 0;
j--;
// j is now -1
Sei un appassionato osservatore di uccelli che tiene traccia di quanti uccelli hanno visitato il tuo giardino. Di solito usi delle tacche su un quaderno per contare gli uccelli, ma vuoi lavorare meglio con i tuoi dati. Hai già digitalizzato i conteggi giornalieri degli uccelli delle ultime settimane che avevi annotato sul quaderno.
Ora vuoi determinare il numero totale di uccelli che hai contato, calcolare il conteggio degli uccelli per una settimana specifica e correggere un errore di conteggio.
Per esercitarti, usa un ciclo for per risolvere ciascuno dei compiti qui sotto.
Iniziamo ad analizzare i dati con una panoramica generale. Scopri quanti uccelli hai contato in totale da quando hai iniziato a tenere i registri.
Implementa una funzione totalBirdCount che accetta un oggetto simile a un array contenente il conteggio giornaliero degli uccelli.
Dovrebbe restituire il numero totale di uccelli che hai contato.
birdsPerDay = [2, 5, 0, 7, 4, 1, 3, 0, 2, 5, 0, 1, 3, 1];
totalBirdCount(birdsPerDay);
// => 34
Ora che hai un'idea generale dei tuoi conteggi, vuoi fare un'analisi più dettagliata.
Implementa una funzione birdsInWeek che accetta un oggetto simile a un array di conteggi giornalieri degli uccelli e un numero di settimana.
Restituisce il numero totale di uccelli che hai contato in quella specifica settimana.
Puoi assumere che le settimane siano sempre registrate per intero.
birdsPerDay = [2, 5, 0, 7, 4, 1, 3, 0, 2, 5, 0, 1, 3, 1];
birdsInWeek(birdsPerDay, 2);
// => 12
Ti sei reso conto che per tutto il tempo in cui cercavi di tenere traccia degli uccelli, ce n'era uno nascosto in un angolo lontano del giardino. Hai capito che questo uccello passava sempre un giorno sì e uno no nel tuo giardino. Non sai esattamente dove stesse nei giorni in mezzo, ma di sicuro non nel tuo giardino. Il tuo intuito di osservatore di uccelli ti dice anche che l'uccello era nel tuo giardino il primo giorno che hai registrato nella tua lista.
Date queste nuove informazioni, scrivi una funzione fixBirdCountLog che prende come argomento un oggetto simile a un array di uccelli contati per giorno. Dovrebbe correggere l'errore di conteggio modificando l'array dato.
birdsPerDay = [2, 5, 0, 7, 4, 1];
fixBirdCountLog(birdsPerDay);
// => [3, 5, 1, 7, 5, 1]
Iscriviti a Exercism per imparare e padroneggiare JavaScript con 37 concetti159 esercizi e il mentoring di persone reali, tutto gratis.