JavaScriptové mapy
Mapa obsahuje páry klíč–hodnota, kde klíče mohou být libovolného datového typu.
Mapa si pamatuje původní pořadí vložení klíčů.
Mapa má vlastnost, která představuje velikost mapy.
Mapové metody
Metoda | Popis |
---|---|
nová mapa() | Vytvoří nový objekt mapy |
soubor() | Nastavuje hodnotu klíče v mapě |
dostat() | Získá hodnotu klíče v mapě |
Průhledná() | Odstraní všechny prvky z mapy |
vymazat() | Odstraní prvek mapy určený klíčem |
má() | Vrátí hodnotu true, pokud klíč v mapě existuje |
pro každého() | Vyvolá zpětné volání pro každý pár klíč/hodnota v mapě |
záznamy() | Vrátí objekt iterátoru s páry [klíč, hodnota] v mapě |
klíče() | Vrátí objekt iterátoru s klíči v mapě |
hodnoty() | Vrátí objekt iterátoru hodnot v mapě |
Vlastnictví | Popis |
---|---|
velikost | Vrátí počet prvků mapy |
Jak vytvořit mapu
Mapu JavaScript můžete vytvořit takto:
- Předání pole do
new Map()
- Vytvořte mapu a použijte ji
Map.set()
nová mapa()
Mapu můžete vytvořit předáním pole new Map()
konstruktoru:
Příklad
// Create a Map
const fruits = new Map([
["apples", 500],
["bananas", 300],
["oranges", 200]
]);
Map.set()
Prvky do mapy můžete přidat pomocí set()
metody:
Příklad
// Create a Map
const fruits = new Map();
// Set Map Values
fruits.set("apples", 500);
fruits.set("bananas", 300);
fruits.set("oranges", 200);
Metodu set()
lze také použít ke změně existujících hodnot mapy:
Příklad
fruits.set("apples", 500);
Map.get()
Metoda get()
získá hodnotu klíče v mapě:
Příklad
fruits.get("apples"); // Returns 500
Velikost mapy
Vlastnost size
vrací počet prvků v mapě:
Příklad
fruits.size;
Map.delete()
Metoda delete()
odstraní prvek mapy:
Příklad
fruits.delete("apples");
Map.clear()
Metoda clear()
odstraní všechny prvky z mapy:
Příklad
fruits.clear();
Map.has()
Metoda has()
vrátí hodnotu true, pokud v mapě existuje klíč:
Příklad
fruits.has("apples");
Zkuste to:
fruits.delete("apples");
fruits.has("apples");
Mapy jsou objekty
typeof
vrací objekt:
Příklad
// Returns object:
typeof fruits;
instanceof
Mapa vrací true:
Příklad
// Returns true:
fruits instanceof Map;
Objekty JavaScriptu vs. Mapy
Rozdíly mezi objekty JavaScriptu a mapami:
Objekt | Mapa | |
---|---|---|
Iterovatelné | Není přímo iterovatelné | Přímo iterovatelné |
Velikost | Nemají vlastnost size | Mít vlastnost velikosti |
Typy klíčů | Klíče musí být řetězce (nebo symboly) | Klíče mohou být libovolného datového typu |
Objednávka klíčů | Klíče nejsou dobře objednané | Klíče se objednávají vložením |
Výchozí | Mít výchozí klíče | Nemáte výchozí klíče |
Map.forEach()
Metoda forEach()
vyvolá zpětné volání pro každý pár klíč/hodnota v mapě:
Příklad
// List all entries
let text = "";
fruits.forEach (function(value, key) {
text += key + ' = ' + value;
})
Map.keys()
Metoda keys()
vrací objekt iterátoru s klíči v mapě:
Příklad
// List all keys
let veggies = "";
for (const x of fruits.keys()) {
veggies += x;
}
Map.values()
Metoda values
vrací objekt iterátoru s hodnotami v mapě:
Příklad
// Sum all values
let total = 0;
for (const x of fruits.values()) {
total += x;
}
Map.entries()
Metoda entries()
vrací objekt iterátoru s [klíč,hodnoty] v mapě:
Příklad
// List all entries
let text = "";
for (const x of fruits.entries()) {
text += x;
}
Objekty jako klíče
Schopnost používat objekty jako klíče je důležitou funkcí mapy.
Příklad
// Create Objects
const apples = {name: 'Apples'};
const bananas = {name: 'Bananas'};
const oranges = {name: 'Oranges'};
// Create a Map
const fruits = new Map();
// Add new Elements to the Map
fruits.set(apples, 500);
fruits.set(bananas, 300);
fruits.set(oranges, 200);
Pamatujte: Klíč je objekt (jablka), nikoli řetězec ("jablka"):
Příklad
fruits.get("apples"); // Returns undefined
Podpora prohlížeče
Mapy JavaScript jsou podporovány ve všech prohlížečích kromě Internet Exploreru:
Chrome | Edge | Firefox | Safari | Opera |