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