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:
marca dell'oggetto pc.proprieta. Nell'esempio, marca diventa proprieta all'interno del for.for.modello dell'oggetto pc.proprieta. Nell'esempio, modello diventa proprieta all'interno del for.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".