Op til nu har vi lært om følgende komplekse datastrukturer:
- Objekter bruges til at gemme samlinger baseret på nøgler.
- Arrays bruges til at gemme ordnede samlinger.
Men det er ikke nødvendigvis nok til komplekse opgaver. Derfor findes Map og Set også.
Map
Map er en samling af nøgle-baserede dataelementer, ligesom et Object. Men den største forskel er, at Map tillader nøgler af enhver type.
Metoder og egenskaber er:
new Map()– opretter et map.map.set(key, value)– gemmer værdien under nøglen.map.get(key)– returnerer værdien for nøglen,undefinedhviskeyikke findes i mappen.map.has(key)– returnerertruehviskeyfindes, ellersfalse.map.delete(key)– fjerner elementet (nøgle/værdi-parret) for nøglen.map.clear()– fjerner alt fra et map.map.size– returnerer det aktuelle antal elementer.
For eksempel:
let map = new Map();
map.set('1', 'str1'); // en streng nøgle
map.set(1, 'num1'); // en numerisk nøgle
map.set(true, 'bool1'); // en boolesk nøgle
// husker du den almindelige Object? den ville konvertere nøgler til strenge
// Map beholder typen, så disse to er forskellige:
alert( map.get(1) ); // 'num1'
alert( map.get('1') ); // 'str1'
alert( map.size ); // 3
Som vi kan se, i modsætning til objekter, konverteres nøgler ikke til strenge. Enhver type nøgle er mulig.
map[key] er ikke den rigtige måde at bruge et Map på