Xaritaviy va to‘plam (Map va Set)
Hozirgacha biz quyidagi murakkab ma'lumot tuzilmalarini o‘rgandik:
- Obyektlar kalit bo‘yicha ma'lumotlar yig‘indisini saqlash uchun ishlatiladi.
- Massivlar tartibli yig‘indini saqlash uchun ishlatiladi.
Biroq, bu real hayotda yetarli emas. Shu sababli Map va Set kabi ma'lumot tuzilmalari ham mavjud.
Map
Map - bu kalitli ma'lumot elementlarini yig‘ishdir, xuddi Obyekt kabi. Ammo asosiy farq shundaki, Map har qanday turdagi kalitlarga ruxsat beradi.
Metodlar va xossalari:
new Map()
– yangi xarita (Map) yaratadi.map.set(key, value)
– qiymatni kalit bo‘yicha saqlaydi.map.get(key)
– kalit bo‘yicha qiymatni qaytaradi, agar kalit xaritada mavjud bo‘lmasa,undefined
qaytaradi.map.has(key)
– agar kalit mavjud bo‘lsa,true
, aks holdafalse
qaytaradi.map.delete(key)
– kalit bo‘yicha elementni olib tashlaydi.map.clear()
– xaritadan hamma narsani olib tashlaydi.map.size
– hozirgi elementlar sonini qaytaradi.
Misol uchun:
Map orqali obyektlarni kalit sifatida ishlatish
Map-da obyektlar kalit sifatida ishlatilishi mumkin. Masalan:
Obyektlar bilan ishlashda Map
aniq turdagi kalitlarni ajratib oladi, bu esa oddiy obyektlardan farq qiladi.
Map kalitlarini solishtirish
Map kalitlarni solishtirishda SameValueZero algoritmidan foydalanadi. Bu algoritm deyarli ===
(qattiq tenglik) bilan bir xil, lekin farqi shundaki, NaN
NaN
ga teng deb hisoblanadi. Shu sababli NaN
ham kalit bo‘lishi mumkin.
Map’da iteratsiya qilish
Map ustida iteratsiya qilish uchun quyidagi usullar mavjud:
map.keys()
– kalitlar uchun iterable.map.values()
– qiymatlar uchun iterable.map.entries()
– kalit-qiymat juftliklari uchun iterable.
Misol uchun:
Obyektdan Map yaratish
Agar sizda oddiy obyekt bo‘lsa va undan Map yaratmoqchi bo‘lsangiz, Object.entries(obj)
usulidan foydalanishingiz mumkin:
Map’dan oddiy obyekt yaratish
Xuddi shunday tarzda Map’dan oddiy obyekt yaratish uchun Object.fromEntries(map)
usulidan foydalanishingiz mumkin:
Set
Set — bu o‘ziga xos yig‘indi turi bo‘lib, u faqat unikal qiymatlarni saqlaydi.
Set’ning asosiy metodlari:
new Set([iterable])
– yangi to‘plam yaratadi, agar iterable (masalan, massiv) berilsa, to‘plamga qiymatlar qo‘shiladi.set.add(value)
– qiymat qo‘shadi, agar qiymat mavjud bo‘lsa, hech narsa qilmaydi.set.delete(value)
– qiymatni o‘chiradi, agar qiymat mavjud bo‘lsa,true
qaytaradi, aks holdafalse
.set.has(value)
– qiymat mavjudligini tekshiradi.set.clear()
– to‘plamni tozalaydi.set.size
– elementlar sonini qaytaradi.
Misol uchun:
Set’da iteratsiya qilish
Set ustida iteratsiya qilish uchun for..of
yoki forEach
usulidan foydalanishingiz mumkin:
Xulosa
- Map – kalitli qiymatlar yig‘indisi. Kalitlar har qanday turdagi bo‘lishi mumkin va qo‘shimcha qulay metodlarga ega.
- Set – faqat unikal qiymatlar yig‘indisi.