JS iterable obyektlar
Takrorlanadigan obyekt takrorlanadigan obyektdir
Takrorlanuvchini for...of sikllari bilan takrorlash mumkin
For...of sikli
JavaScript for..of operatori takrorlanadigan obyekt elementlari bo‘ylab aylanadi.
Sintaksis
for (variable of iterable) {
// code block to be executed
}
Takrorlash
Takrorlash elementlar ketma-ketligi ustida aylanishni anglatadi.
Mana bir nechta misollar:
- String ustida takrorlash
- Array ustida takrorlash
- To‘plam ustida takrorlash
- Map ustida takrorlash
String ustida takrorlash
String elementlarini takrorlash uchun for...of siklidan foydalanishingiz mumkin:
Misol
const name = "W3Schools";
for (const x of name) {
// code block to be executed
}
O‘zingiz sinab ko‘ring »
Array ustida takrorlash
Array elementlarini takrorlash uchun for...of siklidan foydalanishingiz mumkin:
1-misol
const letters = ["a","b","c"];
for (const x of letters) {
// code block to be executed
}
O‘zingiz sinab ko‘ring »
2-misol
const numbers = [2,4,6,8];
for (const x of numbers) {
// code block to be executed
}
O‘zingiz sinab ko‘ring »
To‘plam ustida takrorlash
To‘plam elementlarini takrorlash uchun for...of siklidan foydalanishingiz mumkin:
Misol
const letters = new Set(["a","b","c"]);
for (const x of letters) {
// code block to be executed
}
O‘zingiz sinab ko‘ring »
Map ustida takrorlash
Map elementlarini takrorlash uchun for...of siklidan foydalanishingiz mumkin:
Misol
const fruits = new Map([
["apples", 500],
["bananas", 300],
["oranges", 200]
]);
for (const x of fruits) {
// code block to be executed
}
O‘zingiz sinab ko‘ring »
JavaScript iteratorlari
Iterator protokoli obyektdan qiymatlar ketma-ketligini qanday yaratishni belgilaydi.
Obyekt next() usulini amalga oshirganda iteratorga aylanadi.
next() usuli ikkita xususiyatga ega obyektni qaytarishi kerak:
- qiymat (keyingi qiymat)
- bajarilgan (to‘g‘ri yoki noto‘g‘ri)
| Qiymat | Iterator tomonidan qaytarilgan qiymat (agar bajarilgan bo‘lsa, o‘tkazib yuborilishi mumkin) |
|---|---|
| Bajarildi | agar iterator yangi qiymat yaratgan bo‘lsa, agar iterator noto‘g‘ri bajargan bo‘lsa, true |
Texnik jihatdan, takrorlanuvchilar Symbol.iterator usulini amalga oshirishi kerak.
JavaScript-da quyidagilar takrorlanadi:
- Strings
- Arraylar
- Yozilgan Arraylar
- Setlar
- Map’lar
Chunki ularning prototipi obyektlari Symbol.iterator usuliga ega:
Uyda ishlab chiqarilgan
Bu takrorlanuvchi hech qachon tugamaydigan raqamni qaytaradi: the
next() usuli chaqirilganda: 10,20,30,40,....
Misol
// Home Made Iterable
function myNumbers() {
let n = 0;
return {
next: function() {
n += 10;
return {value:n, done:false};
}
};
}
// Run the Iterable
const n = myNumbers();
n.next(); // Returns 10
n.next(); // Returns 20
n.next(); // Returns 30
O‘zingiz sinab ko‘ring »
Uyda qilingan takrorlashlar JavaScript for...of operatorini qo‘llab-quvvatlamaydi.
JavaScript-ni takrorlash - bu Symbol.iteratorga ega bo‘lgan obyekt.
Symbol.iterator bu next() funksiyasini qaytaruvchi funksiya.
Takrorlanuvchi kod bilan takrorlanishi mumkin: for (const x of iterable) { }
Misol
// Create an Object
myNumbers = {};
// Make it Iterable
myNumbers[Symbol.iterator] = function() {
let n = 0;
done = false;
return {
next() {
n += 10;
if (n == 100) {done = true}
return {value:n, done:done};
}
};
}
Endi for..of’dan foydalanishingiz mumkin
for (const num of myNumbers) {
// Any Code Here
}
O‘zingiz sinab ko‘ring »
Symbol.iterator usuli avtomatik ravishda for..of tomonidan chaqiriladi.
Ammo biz buni "qo‘lda" ham qilishimiz mumkin:
Misol
let iterator = myNumbers[Symbol.iterator]();
while (true) {
const result = iterator.next();
if (result.done) break;
// Any Code Here
}
O‘zingiz sinab ko‘ring »
Iteratorlar ma’lumotlar ketma-ketligi bilan ishlashning boshqariladigan usulini ta’minlaydi, bu turli ma’lumotlar tuzilmalari uchun maxsus iteratsiya mantig‘ini ta’minlaydi.
Keyingi bobda siz ECMAScript 2025 da kiritilgan yangi Iterator Helper funksiyalari haqida bilib olasiz.
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
