Junior
Koja je razlika između petlji for...in i for...of?
sobes.tech АИ
Одговор од АИ
Petlja for...in iterira kroz ključeve (svojstva) enumerabilnih svojstava objekta, uključujući svojstva u njegovom lancu prototipa.
Petlja for...of iterira kroz vrednosti iterabilnih objekata (Array, Map, Set, String, arguments itd.). Ne iterira kroz svojstva prototipa.
for...in |
for...of |
|
|---|---|---|
| Iterira na | Ključeve (svojstva) objekta | Vrednosti iterabilnih objekata |
| Koristi se sa | Objekti | Nizovi, stringovi, Map, Set i drugi iterabilni objekti |
| Prototip | Iterira kroz svojstva prototipa | Ne iterira kroz svojstva prototipa |
| Redosled | Nije garantovan za ne-celobrojne ključeve | Garantovano za nizove (po indeksu) |
Primer for...in:
const obj = { a: 1, b: 2 };
for (const key in obj) {
console.log(key, obj[key]); // Ispisuje: "a 1", "b 2"
}
Primer for...of:
const arr = [1, 2, 3];
for (const value of arr) {
console.log(value); // Ispisuje: 1, 2, 3
}
Uopšteno, za prolazak kroz nizove i slične strukture, preporučljivo je koristiti for...of, a za prolazak kroz svojstva objekata — for...in (često u kombinaciji sa hasOwnProperty da bi se isključila svojstva prototipa).