JS for in sikli

for in sikli

for...in sikli obyektning sanab o‘tiladigan (enumerable) xususiyatlari bo‘ylab iteratsiya qiladi.

for...in sikli asosan obyektlarning xususiyat nomlariga (kalitlariga) murojaat qilish uchun ishlatiladi.

Sintaksis

for (key in object) {   // code block to be executed }
  • key
    Iteratsiyalar davomida har bir xususiyatning nomini (kalitini) saqlaydigan o‘zgaruvchi
  • object
    Xususiyatlari bo‘ylab iteratsiya qilinayotgan obyekt

JavaScript for in operatori person obyektining xususiyatlari bo‘ylab sikl bajaradi:

Misol

const person = {fname:"John", lname:"Doe", age:25}; let text = ""; for (let x in person) {   text += person[x]; }
O‘zingiz sinab ko‘ring »

Misol izohi

  • for in sikli person obyekti bo‘ylab iteratsiya qiladi
  • Har bir iteratsiyada x (kalit) qaytariladi
  • x yordamida x ning qiymatiga murojaat qilinadi
  • x ning qiymati — person[x]

Massivlar bo‘ylab for in sikli

JavaScript for in operatori massiv xususiyatlari bo‘ylab ham sikl bajarishi mumkin:

Sintaksis

for (variable in array) {   code }

Misol

const numbers = [45, 4, 9, 16, 25]; let txt = ""; for (let x in numbers) {   txt += numbers[x]; }
O‘zingiz sinab ko‘ring »

Boshqaruv oqimi

Boshqa JavaScript sikllaridagi kabi, sikl ichida boshqaruv oqimi operatorlaridan foydalanishingiz mumkin:

  • break
    sikl bajarilishini to‘xtatadi va sikldan keyingi operatorlarga o‘tadi
  • continue
    sikl bajarilishini to‘xtatadi va siklning keyingi iteratsiyasiga o‘tadi

Sanab o‘tiladigan (enumerable) xususiyatlar

for...in sikli faqat sanab o‘tiladigan xususiyatlar bo‘ylab iteratsiya qiladi.

enumerable atributi false qilib o‘rnatilgan xususiyatlar, masalan, ba’zi o‘rnatilgan metodlar yoki Object.defineProperty() yordamida aniqlangan xususiyatlar siklga kiritilmaydi.


Prototiplar zanjiri (prototype chain)

for...in sikli obyektning prototiplar zanjiridan meros qilib olingan sanab o‘tiladigan xususiyatlar bo‘ylab ham iteratsiya qiladi. Bunga yo‘l qo‘ymaslik uchun sikl ichida hasOwnProperty() metodidan foydalanib, xususiyat bevosita obyektning o‘ziga tegishli ekanini tekshirishingiz mumkin.



Agar indekslar tartibi muhim bo‘lsa, massiv bo‘ylab for in’dan foydalanmang.

Indekslar tartibi JavaScript dvigateliga (engine) bog‘liq va massiv qiymatlariga siz kutgan tartibda murojaat qilinmasligi mumkin.

Tartib muhim bo‘lganda for siklidan, for of siklidan yoki Array.forEach() metodidan foydalangan ma’qul.

Array.forEach()

forEach() metodi har bir massiv elementi uchun funksiyani (callback funksiyasini) bir marta chaqiradi.

Misol

const numbers = [45, 4, 9, 16, 25]; let txt = ""; numbers.forEach(myFunction); function myFunction(value, index, array) {   txt += value; }
O‘zingiz sinab ko‘ring »

E’tibor bering, funksiya 3 ta argument qabul qiladi:

  • Element qiymati
  • Element indeksi
  • Massivning o‘zi

Yuqoridagi misolda faqat value parametridan foydalanilgan. Uni quyidagicha qayta yozish mumkin:

Misol

const numbers = [45, 4, 9, 16, 25]; let txt = ""; numbers.forEach(myFunction); function myFunction(value) {   txt += value; }
O‘zingiz sinab ko‘ring »

Shuningdek qarang:

JavaScript for...of sikli



W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!