Sitemap

JavaScriptda iterable’lar

2 min readJan 23, 2023

--

Iterable — bu Symbol.iterator xossasiga ega bo’lgan obyekt. Oddiyroq qilib aytadigan bo’lsak, for sikl yordamida aylansa bo’ladigan ma’lumotlar turlari iterable’larga misol bo’ladi. Masalan, array va string built-in (ya’ni JavaScript taqdim etilganidan beri shunday) iterable’lar hisoblanadi. Iterable ma’lumotlar bilan for va for…of sikllarini bemalol ishlatishimiz mumkin.

const brands = [“Asus”, “Lenovo”, “HP”, “Acer”]; for (let i = 0; i < brands.length; i++) { console.log(brands[i]); }

const brands = [“Asus”, “Lenovo”, “HP”, “Acer”]; for (let i of brands) { console.log(i); }

Yuqoridagi ikkala holatda ham natija bir xil bo’ladi va array’dagi barcha elementlar console’ga chiqariladi. Xuddi shunday for sikllardan string, Map, Set va yana bir nechta built-in iterable bo’lgan ma’lumotlar tuzilmalari bilan ham foydalanishimiz mumkin. Ammo barcha turdagi ma’lumotlar tuzilmalari iterable emas. Masalan, obyektlar, WeakMap, WeakSet va yana bir nechta iterable bo’lmagan ma’lumotlar tuzilmalarini keltirishimiz mumkin. Bunday turdagi ma’lumotlar tuzilmalarini iterable qilish uchun bizga Symbol.iterator funksiyasi yordam beradi.

Xo’sh Symbol.iterator nima?

Get Diyorbek Olimov’s stories in your inbox

Join Medium for free to get updates from this writer.

Symbol.iterator — bu JavaScriptdagi maxsus funksiya bo’lib, obyektlarni iterable qilish uchun ishlatiladi va next funksiyasini qaytaradi. Symbol.iterator ishlash prinsipini quyidagi rasmda ko’rishimiz mumkin.

Press enter or click to view image in full size
Symbol.iterator ishlash prinsipi

Yuqoridagi kod qismi JavaScriptga laptop obyekti iterable ekanini aytadi. Demak, biz laptop obyekti bilan for siklini ishlata olamiz va bu holatda Symbol.iterator for sikliga qanday holatda keyingi xossaga o’tish yoki xossalar tugaganda nima qilish kerakligini next funksiyasi yordamida tushuntiradi.

Quyida Symbol.iterator’dan foydalanishga amaliy misol keltiramiz:

Press enter or click to view image in full size

Yuqoridagi rasmda Symbol.iterator’dan foydalanish mumkin bo’lgan holatlardan biriga to’xtaldik, bundan tashqari Symbol.iterator eng ko’p ishlatiladigan holat sifatida JavaScriptda mavjud bo’lmagan ma’lumotlar tuzilmalari LinkedList va Queue yaratishni keltirishimiz mumkin. Ushbu ma’lumotlar tuzilmalari bizga algoritmlarga doir masalalarni yechishda yordam beradi.

JavaScriptda iterable’lar va Symbol.iterator haqidagi savollar ish suhbatlarida eng mashhur savollardan hisoblanadi. Qolaversa, JavaScriptdan foydalanadigan har bir dasturchi iterable’lar haqida ma’lumotga ega bo’lishi kerak deb o’ylayman. Shu sababdan maqola uchun ushbu mavzuni tanlaganman. Berilgan ma’lumotlar siz uchun foydali bo’ladi degan umiddaman.

E’tiboringiz uchun raxmat!

--

--

Diyorbek Olimov
Diyorbek Olimov

Written by Diyorbek Olimov

Software Engineer at Itransition Group