Kartta sisältää avain-arvo-pareja, joissa avaimet voivat olla mitä tahansa tietotyyppiä.
Kartta muistaa avainten alkuperäisen lisäysjärjestyksen.
Kartalla on ominaisuus, joka edustaa kartan kokoa.
Luo uuden karttaobjektin
Asettaa avaimen arvon kartassa
Hakee avaimen arvon kartassa
Poistaa kaikki elementit kartasta
Poistaa avaimella määritellyn karttaelementin
Palauttaa tosi, jos avain on olemassa kartassa
Kutsuu takaisin jokaiselle avain/arvo-parille kartassa
Palauttaa iteraattoriobjektin, jossa on [avain, arvo] -parit kartassa
Palauttaa iteraattoriobjektin kartan avaimilla
Palauttaa kartan arvojen iteraattoriobjektin
Palauttaa karttaelementtien määrän
Voit luoda JavaScript-kartan seuraavasti:
Array välitetään uudelle kartalle()
Luo kartta ja käytä Map.set()-ohjelmaa
uusi kartta()Voit luoda kartan välittämällä taulukon uudelle Map()-konstruktorille:
// Create a Map
const fruits = new Map([
["apples", 500],
["bananas", 300],
["oranges", 200]
]);Kokeile itse →
<!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>
Map.set()Voit lisätä karttaan elementtejä set()-menetelmällä:
// Create a Map
const fruits = new Map();
// Set Map Values
fruits.set("apples", 500);
fruits.set("bananas", 300);
fruits.set("oranges", 200);Kokeile itse →
<!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>
set()-menetelmää voidaan käyttää myös olemassa olevien kartta-arvojen muuttamiseen:
fruits.set("apples", 500);Kokeile itse →
<!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>
Map.get()Metodi get() saa avaimen arvon kartassa:
fruits.get("apples"); // Returns 500Kokeile itse →
<!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>
Map.sizeOminaisuus koko palauttaa kartan elementtien määrän:
fruits.size;Kokeile itse →
<!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>
Map.delete()Metodi delete() poistaa karttaelementin:
fruits.delete("apples");Kokeile itse →
<!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>
Map.clear()clear()-menetelmä poistaa kaikki elementit kartasta:
fruits.clear();Kokeile itse →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Maps</h2>
<p>Clearing a Map:</p>
<p id="demo"></p>
<script>
// Create a Map
const fruits = new Map([
["apples", 500],
["bananas", 300],
["oranges", 200]
]);
// Clear the Map
fruits.clear();
document.getElementById("demo").innerHTML = fruits.size;
</script>
</body>
</html>
Map.has()Metodi has() palauttaa tosi, jos kartassa on avain:
fruits.has("apples");Kokeile itse →
<!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");Kokeile itse →
<!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>
typeof palauttaa objektin:
// Returns object:
typeof fruits;Kokeile itse →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Map Objects</h2>
<p>Map typeof:</p>
<p id="demo"></p>
<script>
// Create a Map
const fruits = new Map([
["apples", 500],
["bananas", 300],
["oranges", 200]
]);
document.getElementById("demo").innerHTML = typeof fruits;
</script>
</body>
</html>
instanceof Map palauttaa tosi:
// Returns true:
fruits instanceof Map;Kokeile itse →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Map Objects</h2>
<p>Map instanceof:</p>
<p id="demo"></p>
<script>
// Create a Map
const fruits = new Map([
["apples", 500],
["bananas", 300],
["oranges", 200]
]);
document.getElementById("demo").innerHTML = fruits instanceof Map;
</script>
</body>
</html>
Suoraan iteroitavissa
Ole koon omaisuus
Avaimet voivat olla mitä tahansa tietotyyppiä
Avaimet tilataan lisäämällä
Ei ole oletusnäppäimiä
Map.forEach()Metodi forEach() kutsuu takaisin jokaiselle avain/arvo-parille kartassa:
// List all entries
let text = "";
fruits.forEach (function(value, key) {
text += key + ' = ' + value;
})Kokeile itse →
<!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>
Map.entries()Metodi entries() palauttaa iteraattoriobjektin, jossa on [avain,arvot] kartassa:
// List all entries
let text = "";
for (const x of fruits.entries()) {
text += x;
}Kokeile itse →
<!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>
Map.keys()Metodi keys() palauttaa iteraattoriobjektin avaimilla kartassa:
// List all keys
let text = "";
for (const x of fruits.keys()) {
text += x;
}Kokeile itse →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Map Objects</h2>
<p>Using Map.keys():</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.keys()) {
text += x + "<br>";
}
document.getElementById("demo").innerHTML = text;
</script>
</body>
</html>
Map.values()Metodi values() palauttaa iteraattoriobjektin arvoineen kartassa:
// List all values
let text = "";
for (const x of fruits.values()) {
text += x;
}Kokeile itse →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Map Objects</h2>
<p>Using Map.values():</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.values()) {
text += x + "<br>";
}
document.getElementById("demo").innerHTML = text;
</script>
</body>
</html>
Voit käyttää values()-menetelmää arvojen summaamiseen kartassa:
// Sum all values
let total = 0;
for (const x of fruits.values()) {
total += x;
}Kokeile itse →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Map Objects</h2>
<p>Using Map.values():</p>
<p id="demo"></p>
<script>
// Create a Map
const fruits = new Map([
["apples", 500],
["bananas", 300],
["oranges", 200]
]);
let total = 0;
for (const x of fruits.values()) {
total += x;
}
document.getElementById("demo").innerHTML = total;
</script>
</body>
</html>
Mahdollisuus käyttää esineitä avaimina on tärkeä kartta-ominaisuus.
// 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);Kokeile itse →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Map Objects</h2>
<p>Being able to use objects as keys is an important Map feature:</p>
<p id="demo"></p>
<script>
// Create Objects
const apples = {name: 'Apples'};
const bananas = {name: 'Bananas'};
const oranges = {name: 'Oranges'};
// Create a Map
const fruits = new Map();
// Add the Objects to the Map
fruits.set(apples, 500);
fruits.set(bananas, 300);
fruits.set(oranges, 200);
document.getElementById("demo").innerHTML = fruits.get(apples);
</script>
</body>
</html>
Muista: Avain on objekti (omenat), ei merkkijono ("omenat"):
fruits.get("apples"); // Returns undefinedKokeile itse →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Map Objects</h2>
<p id="demo"></p>
<script>
// Create Objects
const apples = {name: 'Apples'};
const bananas = {name: 'Bananas'};
const oranges = {name: 'Oranges'};
// Create a Map
const fruits = new Map();
// Add Elements to the Map
fruits.set(apples, 500);
fruits.set(bananas, 300);
fruits.set(oranges, 200);
document.getElementById("demo").innerHTML = fruits.get("apples");
</script>
</body>
</html>
JavaScript-karttoja tuetaan kaikissa selaimissa, paitsi Internet Explorerissa:
| Chrome | Edge | Firefox | Safari | Opera |