Map jest prostym obiektem mapującym klucze na wartości - definicja.
Obiekt Map ma kilka właściwości:
Map.prototype.clear()
Map.prototype.delete()
Map.prototype.entries()
Map.prototype.forEach()
Map.prototype.get()
Map.prototype.has()
Map.prototype.keys()
Map.prototype.set()
Map.prototype.values()
Opiszę tylko kilka z tych właściwości.
Powiedzmy że mamy prosty obiekt i chciałbym sprawdzić ile jest elementów w obiekcie.
Poniżej ten obiekt.
const size = {
desktop: 992,
tablet: 768,
phone: 576
}
Pobieramy ilość elementów.
const sizeMap = new Map(Object.entries(size));
console.log(sizeMap.size); // 3
Map.prototype.get() - zwraca element mapy
const sizeMap = new Map(Object.entries(size));
console.log(sizeMap.get('phone')); // 576
Map.prototype.has() - zwraca Boolean true/false
const sizeMap = new Map(Object.entries(size));
console.log(sizeMap.has('phone')); // true
Map.prototype.set() - dodaje lub zmienia element o podany kluczu i wartości w Mapie.
const sizeMap = new Map(Object.entries(size));
sizeMap.set('phone', 90000);
// { 'desktop' => 992, 'tablet' => 768, 'phone' => 90000 }
Nic nie szkodzi na przeszkodzie aby łączyć
const sizeMap = new Map(Object.entries(size));
sizeMap.set('phone', 90000).
.set('smallPhone', 320)
// { 'desktop' => 992, 'tablet' => 768, 'phone' => 90000, 'smallPhone' => 3200 }
Ostatni przykład forEach
const sizeMap = new Map(Object.entries(size));
sizeMap.forEach((key, value) => {
console.log(value, key)
// desktop 992, tablet 768, phone 90000
})
To samo możemy zrobić z tablicą
new Map([['bar', 2], ['foo', {}], ['baz', undefined], ['test', null]])
.forEach((key, value) => {
console.log(value, key)
// bar 2, foo {}, baz undefined, test null
});