JavaScript Set va Map
Massiv va obyekt ko’p vazifani bajaradi, lekin ikkita cheklovi bor: massivda takror qiymatlar bo’ladi, obyektda kalit faqat matn bo’la oladi. Set va Map shu bo’shliqni to’ldiradi.
Set — takrorlanmas to’plam
Takrorlar avtomatik tushib qoldi. size — elementlar soni (length emas).
Set amallari
To’rt asosiy metod: add, has, delete, clear.
Eng ko’p ishlatiladigan holat — takrorni olib tashlash
Massivni Set ga o’girib, spread bilan qaytarish
— eng qisqa usul.
has tezligi
Farq katta: massiv har safar boshdan qidiradi, Set esa qiymatni to’g’ridan
topadi. Ko’p marta “bormi?” deb so’raladigan joyda Set ishlating.
To’plam amallari
Map — istalgan turdagi kalit
Obyektda bu mumkin emas — u kalitni matnga aylantiradi:
Kalitlar matnga aylandi. Map esa turni saqlaydi.
Map amallari
Map bo’ylab yurish
Map to’g’ridan-to’g’ri for...of bilan ishlaydi va har element
[kalit, qiymat] juftligi bo’ladi — destructuring
bilan ajratiladi.
Obyektda esa Object.entries kerak bo’lardi.
Amaliy misol — sanash
?? operatori birinchi uchrashda 0 beradi — nullish
operatori shu yerda qulay.
Qaysi birini tanlash
| Vazifa | Tanlov |
|---|---|
| Tartiblangan ro’yxat, indeks kerak | Massiv |
Takrorsiz qiymatlar, tez has |
Set |
| Matn kalitli sozlama, JSON | Obyekt |
| Istalgan turdagi kalit, tez-tez qo’shish/o’chirish | Map |
Amaliy mashq
- Takrorli massivdan
Setbilan nusxalarni olib tashlang; add,has,deleteni sinang;- ikki
Setning kesishmasini toping; Mapda obyektni kalit sifatida ishlating;- matndagi so’zlarni
Mapbilan sanang; MapniJSON.stringifyqilib, nima chiqishini ko’ring.
Qisqacha xulosa
- Set — takrorlanmas qiymatlar to’plami;
add,has,delete,size. [...new Set(massiv)]— takrorni olib tashlashning eng qisqa yo’li.Set.hasmassivdagiincludesdan ancha tez.- Map — istalgan turdagi kalit bilan ishlaydigan juftliklar to’plami.
Mapfor...ofbilan[kalit, qiymat]juftligini beradi.- Ikkalasi ham JSON’ga to’g’ridan-to’g’ri sig’maydi.
Keyingi darsda regulyar ifodalar — matn ichidan naqsh bo’yicha qidirish.