Junior
Kāda ir atšķirība starp for...in un for...of cikliem?
sobes.tech AI
Atbilde no AI
for...in cikls iterē pār objekta enumerējamajām īpašībām (atslēgām), ieskaitot to prototipa ķēdē esošās īpašības.
for...of cikls iterē pār iterējamiem objektiem (Array, Map, Set, String, arguments utt.) vērtībām. Tas neiterē pār prototipa īpašībām.
for...in |
for...of |
|
|---|---|---|
| Iterē par | Objekta atslēgām (īpašībām) | Iterējamo objektu vērtībām |
| Lieto ar | Objekti | Masīviem, virknes, Map, Set un citiem iterējamiem objektiem |
| Prototips | Iterē pār prototipa īpašībām | Neiterē pār prototipa īpašībām |
| Secība | Nav garantēta, īpaši ar neveselajiem atslēgām | Garantēta masīviem (pa indeksu) |
for...in piemērs:
const obj = { a: 1, b: 2 };
for (const key in obj) {
console.log(key, obj[key]); // Izvade: "a 1", "b 2"
}
for...of piemērs:
const arr = [1, 2, 3];
for (const value of arr) {
console.log(value); // Izvade: 1, 2, 3
}
Vispārīgi, labāk ir izmantot for...of iterācijai pār masīviem un līdzīgām struktūrām, bet for...in — pār objekta īpašībām (bieži kopā ar hasOwnProperty, lai izslēgtu prototipa īpašības).