JS iteratsiya qilinadigan obyektlar
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 |
Tegishli sahifalar:
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
