JavaScript Map-metoder
new Map() metoden
Genom att skicka ett array till new Map()
Konstruktören för att skapa en Map:
instans
// Skapa en Map const frukter = new Map([ ["apples", 500], ["bananer", 300], ["oranger", 200] ]);
Map.hämta()
kan användas hämta()
Metoden hämtar värdet för en nyckel i en Map:
instans
frukter.hämta("apples");
Map.sätt()
kan användas sätt()
Metoden lägger till element till en Map:
instans
// Skapa en Map const fruits = new Map(); // Sätt Map-värden frukter.sätt("apples", 500); frukter.sätt("bananer", 300); frukter.sätt("oranger", 200);
sätt()
Metoden kan också användas för att ändra befintliga Map-värden:
instans
frukter.sätt("apples", 500);
Map.storlek
storlek
Egenskapen returnerar antalet element i en Map:
instans
frukter.storlek;
Map.taBort()
taBort()
Metoden tar bort ett element från en Map:
instans
frukter.taBort("apples");
Map.töm()
töm()
Metoden tar bort alla element från en Map:
instans
frukter.töm();
Map.har()
Om det finns en viss nyckel i Map:har()
Metoden returnerar true:
instans
frukter.har("apples");
Försök följande kod:
frukter.taBort("apples"); frukter.har("apples");
Map.varje()
varje()
Metoden anropar en callback-funktion för varje nyckel-värdepar i en Map:
instans
// Lista alla poster let text = ""; frukter.varje(function(value, key) { text += nyckel + ' = ' + värde; });
Map.entiteter()
entiteter()
Metoden returnerar ett iteratörobjekt som innehåller [nyckel, värde] korrekt iteratorobjekt:
instans
// Lista alla poster let text = ""; för (const x av frukter.entiteter()) { text += x; }
Map.keys()
keys()
Metoden returnerar ett iteratörobjekt som innehåller nycklarna i en Map:
instans
// Lista alla nycklar let text = ""; för (const x av frukter.namn()) { text += x; }
Map.values()
values()
metoden returnerar en iteratörobjekt som innehåller värdena i Map:
instans
// Lista alla värden let text = ""; for (const x of fruits.values()) { text += x; }
kan användas values()
metoden summerar värdena i Map:
instans
// Summera alla värden let total = 0; for (const x of fruits.values()) { total += x; }
objekt som nycklar
Tips:att kunna använda objekt som nycklar är en viktig egenskap av Map.
instans
// Skapa objekt const apples = {name: 'Apples'}; const bananas = {name: 'Bananas'}; const oranges = {name: 'Oranges'}; // Skapa en Map const fruits = new Map(); // Lägg till nya element i Map fruits.set(apples, 500); fruits.set(bananas, 300); fruits.set(oranges, 200);
Observera:nyckeln är objektet (apples) snarare än strängen ("apples"):
instans
fruits.get("apples"); // Returnerar undefined
JavaScript Map.groupBy()
ES2024 lade till Map.groupBy()
metoden.
Map.groupBy()
metoden grupperar elementen i objektet baserat på den strängvärde som returneras av callback-funktionen.
Map.groupBy()
metoden ändrar inte den ursprungliga objektet.
instans
// Skapa en array const fruits = [ {name: "apples", quantity: 300}, {name: "bananas", quantity: 500}, {name: "oranges", quantity: 200}, {name: "kiwi", quantity: 150} ]; // Callback-funktion för gruppering function myCallback({ quantity }) { return quantity > 200 ? "ok" : "low"; } // Gruppera efter kvantitet const result = Map.groupBy(fruits, myCallback);
Webbläsarstöd
Map.groupBy()
är en ES2024-funktion.
Från och med mars 2024 stöder alla nya webbläsare denna egenskap:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 117 | Edge 117 | Firefox 119 | Safari 17.4 | Opera 103 |
September 2023 | September 2023 | Oktober 2023 | Oktober 2024 | Maj 2023 |
Varning:
ES2024-funktioner är relativt nya.
Gamla webbläsare kan behöva ersättningskod (Polyfill).
Skillnaden mellan Object.groupBy() och Map.groupBy()
Object.groupBy()
och Map.groupBy()
Skillnaden ligger i:
Object.groupBy()
Gruppera element till JavaScript-objekt.
Map.groupBy()
Gruppera element till Map-objekt.
Komplett Map-referenshandbok
För en fullständig referens, besök vår:JavaScript Map-referenshandbok.
Denna handbok innehåller beskrivningar och exempel på alla Map-attribut och metoder.