logo Dove iniziare Linguaggi Aiuto Blog
Home Dove iniziare Linguaggi Aiuto e Supporto Info e Blog

Ciclo for in

Nella lezione precedente, abbiamo visto il ciclo for semplice. Ora, vediamo cosa è e come funziona il ciclo for in. Questo tipo di ciclo permette di iterare tutte le proprietà di un oggetto.

Come creare un ciclo for in

Per creare un ciclo for in, si utilizza la sintassi for(nome in oggetto){ ... }. Ad esempio:

let pc = {
  marca: "HP",
  modello: "Pavilion",
  sistema: "Windows"
}

for(proprieta in pc){
  // Istruzioni
}

Nell'esempio, troviamo proprieta e pc come parametri all'interno del for. Sono rispettivamente nome e oggetto della sintassi di cui abbiamo parlato prima.

Nota: se non conosci gli oggetti, prova a leggere la lezione dedicata Gli oggetti.

Ecco cosa avviene quando avviamo il ciclo:

  1. Viene prelevata la prima proprietà dell'oggetto, in questo caso marca dell'oggetto pc.
  2. Alla proprietà prelevata, viene assegnato il nome generico proprieta. Nell'esempio, marca diventa proprieta all'interno del for.
  3. Vengono eseguite le istruzioni del blocco for.
  4. Viene prelevata la seconda proprietà dell'oggetto, in questo caso modello dell'oggetto pc.
  5. Alla proprietà prelevata, viene assegnato il nome generico proprieta. Nell'esempio, modello diventa proprieta all'interno del for.
  6. Vengono eseguite le istruzioni del blocco for.

Il tutto si ripete per il numero di proprietà all'interno dell'oggetto.

Utilizzo dei dati nel ciclo for in

All'interno del blocco for in, il nome della proprietà dell'oggetto scelto è visibile. Ad esempio:

let pc = {
  marca: "HP",
  modello: "Pavilion",
  sistema: "Windows"
}

for(proprieta in pc){
  alert(proprieta);
  // Risultato: "marca"
  // Risultato: "modello"
  // Risultato: "sistema"
}

Accedere ai valori dell'oggetto

Per accedere ai valori dell'oggetto, puoi usare la sintassi degli oggetti: oggetto[proprieta].

let pc = {
  marca: "HP",
  modello: "Pavilion",
  sistema: "Windows"
}

for(proprieta in pc){
  alert(pc[proprieta]);
  // Risultato: "HP"
  // Risultato: "Pavilion"
  // Risultato: "Windows"
}

Usare il ciclo for in per altri tipi di variabile

Puoi utilizzare questo ciclo anche per altri tipi di variabile. La sintassi e il funzionamento rimane uguale. Vediamo come funziona.

Con gli array

let numeri = [43, 12, 29, 10, 33];

for(proprieta in numeri){
  alert(numeri[proprieta]);
  // Risultato: 43
  // Risultato: 12
  // ...
}

Con le stringhe

let linguaggio = "JavaScript";

for(proprieta in linguaggio){
  alert(linguaggio[proprieta]);
  // Risultato: "J"
  // Risultato: "a"
  // ...
}

Terminare un ciclo

Per terminare un ciclo, si può utilizzare break.

let linguaggio = "JavaScript";

for(proprieta in linguaggio){
  alert(linguaggio[proprieta]);
  // Risultato: "J"
  // Risultato: "a"
  // Risultato: "v"
  if(linguaggio[proprieta] == "v"){
    // Se la lettera è la "v", il ciclo si ferma
    break;
  }
}

Nell'esempio, vogliamo fermare il ciclo quando incontriamo la lettera "v".

Prova!Completa gli spazi vuoti con il testo appropriato.
// Crea un ciclo for in
let luca = {
  altezza: 180,
  capelli: "castani"
}
for( in ){
  alert(luca[proprieta]);
}