JavaScript Map (Lug'at)
JavaScript Map — bu kalit-qiymat (key-value) juftliklarini saqlash uchun mo'ljallangan obyekt bo'lib, u boshqa dasturlash tillaridagi "lug'at" (dictionary) tushunchasiga o'xshaydi.
Oddiy obyektlardan farqi shundaki, Map-da kalitlar nafaqat matn, balki istalgan turda (sonlar, obyektlar va h.k.) bo'lishi mumkin.
1. Map xususiyatlari
- Kalit turlari: Kalitlar istalgan turda bo'lishi mumkin.
- Tartib: Elementlar qo'shilgan tartibda saqlanadi va iteratsiya qilinadi.
- Hajmi:
sizexususiyati orqali elementlar sonini osongina bilish mumkin. - Samaradorlik: Elementlarni tez-tez qo'shish va o'chirish uchun moslangan.
2. Map yaratish
Buning ikki xil usuli bor:
new Map()yaratib, keyinset()metodi bilan qiymat qo'shish.- Konstruktorga tayyor massiv uzatish.
Misol
js
// 1-usul: set() orqali
const mevalar = new Map();
mevalar.set("olma", 500);
mevalar.set("banan", 300);
// 2-usul: Massiv orqali
const mevalar2 = new Map([
["olma", 500],
["banan", 300]
]);3. Qiymatlarni olish va o'zgartirish
get(kalit): Kalitga mos keladigan qiymatni qaytaradi.set(kalit, yangiQiymat): Mavjud elementni o'zgartiradi yoki yangisini qo'shadi.
js
const narx = mevalar.get("olma"); // 500
mevalar.set("olma", 600); // Qiymat 600 ga o'zgardi4. Map va Obyektlar o'rtasidagi farq
| Xususiyat | Obyekt (Object) | Map |
|---|---|---|
| Iteratsiya | To'g'ridan-to'g'ri bo'lmaydi | To'g'ridan-to'g'ri iterable |
| Hajmi | size xususiyati yo'q | size xususiyati bor |
| Kalit turlari | Faqat String yoki Symbol | Istalgan tur (Object, Number va h.k.) |
| Tartib | Kafolatlanmagan | Qo'shilgan tartibda |
5. Iteratsiya (Aylanib chiqish)
Map elementlarini forEach() yoki for..of yordamida osongina ko'rib chiqish mumkin:
js
for (const [kalit, qiymat] of mevalar) {
console.log(kalit + " : " + qiymat);
}Xulosa
Agar sizga murakkab kalitlar kerak bo'lsa yoki ma'lumotlar tartibi muhim bo'lsa, oddiy obyekt o'rniga Map dan foydalanish tavsiya etiladi. U hozirgi zamonaviy JavaScript ilovalarida juda keng qo'llaniladi.
