JS iteratsiya qilinadigan obyektlar

ULASHISH

Iteratsiya qilinadigan obyekt (iterable) nima

Iteratsiya qilinadigan obyekt (iterable) — qiymatlariga birma-bir murojaat qilish mumkin bo‘lgan obyekt.

Iteratsiya qilinadigan obyektlarni for...of sikllarida, spread sintaksisida va ko‘plab o‘rnatilgan JavaScript metodlarida ishlatish mumkin.

Iteratsiya qilinadigan obyektlar nega muhim

Ko‘plab JavaScript imkoniyatlari iteratsiya qilinadigan obyektlar bilan ishlaydi.

Misollar:

  • for...of
  • Spread sintaksisi (...)
  • Array.from()
  • new Map(iterable)
  • new Set(iterable)
  • Promise.all()

O‘rnatilgan iteratsiya qilinadigan obyektlar

Bir nechta o‘rnatilgan JavaScript tiplari iteratsiya qilinadi.

Tip Iteratsiya qilinadimi
Array Ha
String Ha
Map Ha
Set Ha
TypedArray Ha
WeakMap Yo‘q
WeakSet Yo‘q
Object Yo‘q

Massivlarni iteratsiya qilish

Massivlar iteratsiya qilinadi.

Misol

const cars = ["Volvo", "Saab", "BMW"]; let text = ""; for (const car of cars) {   text += car + "<br>"; }

Stringlarni iteratsiya qilish

Stringlar iteratsiya qilinadi.

Misol

const text = "Hello"; for (const letter of text) {   console.log(letter); }

Spread sintaksisi

Spread sintaksisi iteratsiya qilinadigan obyektlar bilan ishlaydi.

Misol

const letters = [..."Hello"];

Natija:

["H", "e", "l", "l", "o"]

Array.from()

Array.from() metodi iteratsiya qilinadigan obyektdan massiv yaratadi.

Misol

const arr = Array.from("Hello");

Natija:

["H", "e", "l", "l", "o"]

Map va Set konstruktorlari

Map() va Set() konstruktorlari iteratsiya qilinadigan obyektlarni qabul qiladi.

Set yaratish

Misol

const letters = new Set(["a", "b", "c"]);

Map yaratish

Misol

const fruits = new Map([   ["apples", 500],   ["bananas", 300] ]);


Obyektlar iteratsiya qilinmaydi

Oddiy obyektlar iteratsiya qilinmaydi.

Misol

const person = {   name: "John",   age: 50 }; for (const value of person) {   console.log(value); }

Bu misol TypeError tashlaydi.


Obyektlarni iteratsiya qilinadigan qilish

Obyektlar iterator protokolini amalga oshirish orqali iteratsiya qilinadigan bo‘lishi mumkin.

Buning uchun Symbol.iterator metodi aniqlanadi.

Misol

const obj = {   *[Symbol.iterator]() {     yield 1;     yield 2;     yield 3;   } };

Iterator protokoli

Iteratsiya qilinadigan obyektda Symbol.iterator metodi bo‘ladi.

Bu metod iterator obyektini qaytaradi.

Iterator obyekti qiymatlarni birma-bir taqdim etadi.

Iterable   ↓ Symbol.iterator()   ↓ Iterator   ↓ next()   ↓ Value

Xulosa

Tip Iteratsiya qilinadimi Keng tarqalgan qo‘llanilishi
Array Ha for...of, spread sintaksisi
String Ha for...of, spread sintaksisi
Map Ha for...of
Set Ha for...of
Object Yo‘q Object.keys() dan foydalaning
WeakMap Yo‘q Iteratsiya qilinmaydi
WeakSet Yo‘q Iteratsiya qilinmaydi


W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!