Può essere utilizzato sugli oggetti ma anche sugli array. Utilizzando questo ciclo non serve precisare la lunghezza dell'array come abbiamo fatto utilizzando invece il ciclo for.
Da zero ad eroe
Entra nel mondo della programmazione web: variabili, funzioni, array, DOM, eventi. Con esercizi pratici e progetti coinvolgenti.
- ⏱️ 8 ore di corso registrato
- 🧩 Più di 50 algoritmi risolti passo passo
- 🎯 Livello base — da zero ad eroe
- 💻 100% online, fruibile quando vuoi
for (var in object)
istruzioni
Dove in è una parola chiave che serve a testare se la variabile specificata è presente nell'oggetto. Quindi l'espressione (var in object) restituisce un valore booleano. Finché questo valore sarà vero il ciclo sarà eseguito.
Facciamo alcuni esempi per comprenderne meglio il funzionamento:
Esempio 1 - ciclo for in
In questo primo esempio costruiamo un semplice oggetto utente con 3 proprietà.
utente = {
nome: 'Coding',
cognome: 'Creativo',
telefono: '333'
}
for (var k in utente){
console.log(k);
}
Nel nostro esempio k assumerà il valore di tutte le proprietà presenti nel nostro oggetto. Dunque nel console.log si visualizzerà: nome, cognome e telefono.
Al posto di k possiamo indicare qualsiasi nome di variabile. Il nome è puramente indicativo. Attenzione anche al fatto che va utilizzato var.
Il ciclo for viene eseguito dunque finché non trova proprietà all'interno dell'oggetto.
Se vogliamo visualizzare anche i valori delle proprietà, allora occorre indicare ciascun elemento.
In questo caso utilizziamo la notazione con le parentesi quadre, questo perché se scrivessi utente.k, k non è riconosciuta come proprietà dell'oggetto utente, quindi darebbe errore. Dunque l'unico modo per poter accedere al valore della chiave in un oggetto è la notazione con le parentesi quadre.
utente = {
nome: 'Coding',
cognome: 'Creativo',
telefono: '333'
}
for (var k in utente){
console.log(k + 'valore ' + utente[k]);
}
Nella console in questo modo visualizzerò: nome valore Coding, cognome valore Creativo e telefono valore 333.
Nel caso in cui ci troviamo ad utilizzare degli oggetti annidati, possiamo annidare il ciclo for all'interno di un altro, come da esempio sotto:
utente = {
nome: 'Coding',
cognome: 'Creativo',
telefono: '333',
indirizzo: {
via: 'dei tulipani',
citta: 'Modica'
}
}
for (var k in utente){
if (k == 'indirizzo'){
for (var j in utente.indirizzo){
console.log(j + ': ' + utente.indirizzo[j]);
}
} else {
console.log(k + ': ' + utente[k]);
}
}
Dunque per visualizzare gli elementi all'interno della proprietà indirizzo, che rappresenta un oggetto, utilizzo un altro ciclo for.
Notiamo che possiamo scrivere anche in questo modo:
for (var k in utente){
if (k == 'indirizzo'){
for (var j in utente[k]){
console.log(j + ': ' + utente[k][j]);
}
} else {
console.log(k + ': ' + utente[k]);
}
}
In questa lezione abbiamo introdotto questo nuovo ciclo iterativo, nelle prossime lezioni proporrò altri esempi.
Alcuni link utili
Indice tutorial JavaScript
Le funzioni di callback
Esempi funzioni di callback
Come utilizzare le callback e setTimeout
Cifrario di Cesare online
Come realizzare un convertitore da decimale a binario, ottale ed esadecimale
Come creare PDF con JavaScript
PDF da un form con JavaScript
Proprietà di un PDF con JavaScript
Libreria jsPDF