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íčů.
Vytvoří novou mapu
Nastavuje hodnotu klíče v mapě
Získá hodnotu klíče v mapě
Odebere prvek mapy určený klíčem
Vrátí hodnotu true, pokud v mapě existuje klíč
Volá funkci pro každý pár klíč/hodnota v mapě
Vrátí iterátor s páry [klíč, hodnota] v mapě
Vrátí počet prvků v mapě
Mapu JavaScript můžete vytvořit takto:
Předání pole do nové Map()
Vytvořte mapu a použijte Map.set()
new Map()
Mapu můžete vytvořit předáním pole konstruktoru new Map()
:
// Create a Map
const fruits = new Map([
["apples", 500],
["bananas", 300],
["oranges", 200]
]);
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Map Objects</h2>
<p>Creating a Map from an Array:</p>
<p id="demo"></p>
<script>
// Create a Map
const fruits = new Map([
["apples", 500],
["bananas", 300],
["oranges", 200]
]);
document.getElementById("demo").innerHTML = fruits.get("apples");
</script>
</body>
</html>
set()
Prvky do mapy můžete přidat pomocí metody set()
:
// Create a Map
const fruits = new Map();
// Set Map Values
fruits.set("apples", 500);
fruits.set("bananas", 300);
fruits.set("oranges", 200);
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Map Objects</h2>
<p>Using Map.set():</p>
<p id="demo"></p>
<script>
// Create a Map
const fruits = new Map();
// Set Map Values
fruits.set("apples", 500);
fruits.set("bananas", 300);
fruits.set("oranges", 200);
document.getElementById("demo").innerHTML = fruits.get("apples");
</script>
</body>
</html>
Metodu set()
lze také použít ke změně stávajících hodnot mapy:
fruits.set("apples", 200);
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Map Objects</h2>
<p>Using Map.set():</p>
<p id="demo"></p>
<script>
// Create a Map
const fruits = new Map([
["apples", 500],
["bananas", 300],
["oranges", 200]
]);
fruits.set("apples", 200);
document.getElementById("demo").innerHTML = fruits.get("apples");
</script>
</body>
</html>
get()
Metoda get()
získává hodnotu klíče v mapě:
fruits.get("apples"); // Returns 500
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Map Objects</h2>
<p>Using Map.get():</p>
<p id="demo"></p>
<script>
// Create a Map
const fruits = new Map([
["apples", 500],
["bananas", 300],
["oranges", 200]
]);
document.getElementById("demo").innerHTML = fruits.get("apples");
</script>
</body>
</html>
size
Vlastnost size
vrací počet prvků v mapě:
fruits.size;
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Maps</h2>
<p>Using Map.size:</p>
<p id="demo"></p>
<script>
// Create a Map
const fruits = new Map([
["apples", 500],
["bananas", 300],
["oranges", 200]
]);
document.getElementById("demo").innerHTML = fruits.size;
</script>
</body>
</html>
delete()
Metoda delete()
odstraní prvek mapy:
fruits.delete("apples");
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Maps</h2>
<p>Deleting Map elements:</p>
<p id="demo"></p>
<script>
// Create a Map
const fruits = new Map([
["apples", 500],
["bananas", 300],
["oranges", 200]
]);
// Delete an Element
fruits.delete("apples");
document.getElementById("demo").innerHTML = fruits.size;
</script>
</body>
</html>
has()
Metoda has()
vrátí hodnotu true, pokud v mapě existuje klíč:
fruits.has("apples");
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Maps</h2>
<p>Using Map.has():</p>
<p id="demo"></p>
<script>
// Create a Map
const fruits = new Map([
["apples", 500],
["bananas", 300],
["oranges", 200]
]);
document.getElementById("demo").innerHTML = fruits.has("apples");
</script>
</body>
</html>
fruits.delete("apples");
fruits.has("apples");
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Maps</h2>
<p>Using Map.has():</p>
<p id="demo"></p>
<script>
// Create a Map
const fruits = new Map([
["apples", 500],
["bananas", 300],
["oranges", 200]
]);
// Delete an Element
fruits.delete("apples");
document.getElementById("demo").innerHTML = fruits.has("apples");
</script>
</body>
</html>
Iterovatelný: Není přímo iterovatelný
Velikost: Nemejte vlastnost size
Typy klíčů: Klíče musí být řetězce (nebo symboly)
Pořadí klíčů: Klíče nejsou dobře seřazeny
Výchozí: Mají výchozí klíče
Iterovatelný: Přímo iterovatelný
Velikost: Mějte vlastnost size
Typy klíčů: Klíče mohou být libovolného datového typu
Pořadí klíčů: Klíče jsou seřazeny podle vložení
Výchozí: Nemáte výchozí klíče
forEach()
Metoda forEach()
volá funkci pro každý pár klíč/hodnota v mapě:
// List all entries
let text = "";
fruits.forEach (function(value, key) {
text += key + ' = ' + value;
})
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Map Objects</h2>
<p>Using Map.forEach():</p>
<p id="demo"></p>
<script>
// Create a Map
const fruits = new Map([
["apples", 500],
["bananas", 300],
["oranges", 200]
]);
let text = "";
fruits.forEach (function(value, key) {
text += key + ' = ' + value + "<br>"
})
document.getElementById("demo").innerHTML = text;
</script>
</body>
</html>
entries()
Metoda entries()
vrací objekt iterátoru s [klíč, hodnoty] v mapě:
// List all entries
let text = "";
for (const x of fruits.entries()) {
text += x;
}
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Map Objects</h2>
<p>Using Map.entries():</p>
<p id="demo"></p>
<script>
// Create a Map
const fruits = new Map([
["apples", 500],
["bananas", 300],
["oranges", 200]
]);
let text = "";
for (const x of fruits.entries()) {
text += x + "<br>";
}
document.getElementById("demo").innerHTML = text;
</script>
</body>
</html>
Mapy JavaScript jsou podporovány ve všech prohlížečích kromě Internet Exploreru:
Chrome | Edge | Firefox | Safari | Opera |