Junior
for...in və for...of döngüləri arasındakı fərq nədir?
sobes.tech Süni İntellekt
AI-dan cavab
for...in döngüsü, obyektin sayılabilan xüsusiyyətlərinin (açarların) və onun prototip zənciri boyunca olan xüsusiyyətlərin üzərində iterasiya edir.
for...of döngüsü isə, təkrarlana bilən obyektlərin (Array, Map, Set, String, arguments və s.) dəyərləri üzərində iterasiya edir. O, prototip xüsusiyyətləri üzərində iterasiya etmir.
for...in |
for...of |
|
|---|---|---|
| İterasiya edir | Obyektin açarları (xüsusiyyətləri) | Təkrarlana bilən obyektlərin dəyərləri |
| İstifadə olunur | Obyektlərlə | Arraylər, sətirlər, Map, Set və digər təkrarlana bilən obyektlərlə |
| Prototip | Prototipin xüsusiyyətləri üzərində iterasiya | Prototip xüsusiyyətləri üzərində iterasiya etmir |
| İterasiya sırası | Qarantili deyil, xüsusən qeyri-rəqəmsal açarlar üçün | Arraylər üçün (indeksə görə) qarantili |
for...in nümunəsi:
const obj = { a: 1, b: 2 };
for (const key in obj) {
console.log(key, obj[key]); // Çıxış: "a 1", "b 2"
}
for...of nümunəsi:
const arr = [1, 2, 3];
for (const value of arr) {
console.log(value); // Çıxış: 1, 2, 3
}
Ümumiyyətlə, array və oxşar strukturlar üzərində keçid üçün for...of istifadə etmək daha məsləhətdir, və obyektin xüsusiyyətlərini keçmək üçün isə for...in (tez-tez hasOwnProperty ilə birlikdə, prototip xüsusiyyətlərini istisna etmək üçün).