Sobes.tech
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).