Ciclo for...of
I cicli for...of e for...in offrono modi comodi per iterare sugli elementi degli array e sulle proprietà degli oggetti in JavaScript. Entrambi vengono usati per iterare, ma si applicano in situazioni diverse.
Ciclo for...of
Il ciclo for...of è progettato per iterare su oggetti iterabili (come array, stringhe, oggetti Set e Map). Permette di scorrere facilmente gli elementi di una collezione.
Sintassi:
for (let variable of iterable) {
// codice eseguito per ogni elemento
}
Esempio:
let array = [1, 2, 3, 4, 5];
for (let value of array) {
console.log(value);
}
// Output: 1 2 3 4 5
Uso per gli array
Il ciclo for...of è utile per iterare sugli elementi di un array, poiché consente l'accesso ai valori di ciascun elemento:
let fruits = ['apple', 'banana', 'cherry'];
for (let fruit of fruits) {
console.log(fruit);
}
// Output: apple banana cherry
Uso per le stringhe
Il ciclo for...of può essere utilizzato anche per iterare sui caratteri di una stringa:
let str = 'Hello';
for (let char of str) {
console.log(char);
}
// Output: H e l l o
9.2 Ciclo for...in
Il ciclo for...in viene utilizzato per iterare sulle proprietà enumerabili di un oggetto. Esegue l'iterazione sulla chiave di ciascuna proprietà.
Sintassi:
for (let key in object {
// codice eseguito per ogni elemento
}
Esempio:
let obj = {a: 1, b: 2, c: 3};
for (let key in obj) {
console.log(key + ': ' + obj[key]);
}
// Output: a: 1 b: 2 c: 3
Uso per gli oggetti
Il ciclo for...in è conveniente per iterare sulle proprietà di un oggetto, poiché consente l'accesso alla chiave e al valore di ciascuna proprietà:
let user = {
name: 'John',
age: 30,
isAdmin: true
};
for (let key in user) {
console.log(key + ': ' + user[key]);
}
// Output: name: John age: 30 isAdmin: true
Uso per gli array
Il ciclo for...in può essere utilizzato per iterare sugli indici di un array, ma non è consigliabile, poiché itera su tutte le proprietà enumerabili, incluse quelle del prototipo:
let array = ['apple', 'banana', 'cherry'];
for (let index in array) {
console.log(index + ': ' + array[index]);
}
// Output: 0: apple 1: banana 2: cherry
9.3 Confronto tra cicli for...of e for...in
Confronto tra i cicli for...of e for...in:
| Descrizione | for...of | for...in |
|---|---|---|
| Uso | Oggetti iterabili (array, stringhe, Set, Map) | Oggetti |
| Caratteristiche | Itera sui valori | Itera sulle chiavi |
| Uso con array | for (let value of array) { ... } |
for (let index in array) { ... } |
| Uso con oggetti | for (let value of Object.values(obj)) { ... } |
for (let key in obj) { ... } |
GO TO FULL VERSION