JavaScript 📜
August 5

Javascript Maps va Sets lar

Maps bu key: value qiymatlarini to'plovchi to'plam. Xuddi obyektga o'xshaydi. Lekin obyektdan farqi bor. Maps har qanday turlarni key sifatida qabul qiladi. Masalan: number, string, boolean v.k.

Map ning metodlari:

let map = new Map();

map.set('1', 'str1'); // a string key

map.set(1, 'num1'); // a numeric key

map.set(true, 'bool1'); // a boolean key

Map da qiymatlar ham hohlagan tur bo'la oladi. Yani primitivlar: number, string, boolean va hokazo, shuningdek, reference turlar ham.

const map = new Map();

map.set('number', 42); map.set('string', 'hello'); map.set('boolean', true); map.set('object', { name: 'Ali' }); map.set('array', [1, 2, 3]); map.set('function', () => console.log('Hi!')); map.set('map', new Map([['key', 'value']]));

console.log(map.get('object')); // { name: 'Ali' } console.log(map.get('function')); // [Function]

Map ning built-in bo'lgan forEach metodi mavjud:

map.forEach(value, key) => {alert(`${key}, ${value})

! Odatdagidan farqli ravishda value key dan oldin keladi.

Map ning shuningdek, quyidagi metodlari ham bor.

  • map.keys() - mapning key larini qaytaradi.
  • map.values() - mapning qiymat larini qaytaradi.
  • map.entries() - mapning key va qiymat juftliklarini array sifatida qaytaradi.

const map = new Map([ ['name', 'Alice'], ['age', 30] ]);

const entriesIterator = map.entries();

for (const entry of entriesIterator) { console.log(entry); }

Output:

['name', 'Alice'] ['age', 30]

map.entries() va map (entries() siz) bir xil qiymat qaytaradi.

const entriesIterator = map.entries();

const entriesIterator = map;

Yuqoridagi misolda har bir entry bu key va value ga teng. Uni quyidagicha destrukturizatsiya qilish mumkin:

for (const [key, value] of map.entries()) { console.log(key, value); }

Output:

name Alice age 30

Qisqa qilib aytganda map() entries iterator qaytaradi. Bu iterator key, value juftliklaridan iborar array bo'ladi.

Object.entries - Obyektdan Map yaratish

Obyektdan Map yasash uchun Object.entries() metodidan foydalaniladi. Bu metod obyektning key va value laridan iborat array qaytaradi. Bu Map yasash uchun uchun kerakli narsadir.

let obj = { name: "John", age: 30 };

let map = new Map(Object.entries(obj));

alert( map.get('name') ); // John

Object.fromEntries() - Map dan obyekt yasash.

Bu metod mapdan obyekt yasash uchun ishlatiladi.

let map = new Map();

map.set('banana', 1);

map.set('orange', 2);

map.set('meat', 4);

let obj = Object.fromEntries(map.entries());

// make a plain object (*)

// done!

// obj = { banana: 1, orange: 2, meat: 4 }

alert(obj.orange); // 2

map va map.entries() obyekt yasash uchun Object.fromEntries() talab qilgan formatni qaytaradi.

Sets esa unique bo'lgan qiymatlarni to'plash uchun ishlatiladi. Array dan farqi qiymatlar bir xil bo'lmasligi kerak.