JavaScript-kort


Indholdsfortegnelse

    Vis indholdsfortegnelse

Et kort indeholder nøgle-værdi-par, hvor nøglerne kan være en hvilken som helst datatype.

Et kort husker den oprindelige indsættelsesrækkefølge for nøglerne.

Væsentlige kortmetoder

new Map()

Opretter et nyt kort

set()

Indstiller værdien for en nøgle i et kort

get()

Henter værdien for en nøgle i et kort

delete()

Fjerner et kortelement angivet af nøglen

has()

Returnerer sand, hvis der findes en nøgle i et kort

forEach()

Kalder en funktion for hvert nøgle/værdi-par i et kort

entries()

Returnerer en iterator med [nøgle, værdi]-parrene i et kort

size

Returnerer antallet af elementer i et kort


Sådan opretter du et kort

Du kan oprette et JavaScript-kort ved at:

  • Sender et array til new Map()

  • Opret et kort og brug Map.set()


Metoden new Map()

Du kan oprette et kort ved at videregive et array til new Map()-konstruktøren:

Eksempel

// Create a Map
const fruits = new Map([
  ["apples", 500],
  ["bananas", 300],
  ["oranges", 200]
]);

Prøv det selv →

<!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>


Metoden set()

Du kan tilføje elementer til et kort med metoden set():

Eksempel

// Create a Map
const fruits = new Map();

// Set Map Values
fruits.set("apples", 500);
fruits.set("bananas", 300);
fruits.set("oranges", 200);

Prøv det selv →

<!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>

Metoden set() kan også bruges til at ændre eksisterende kortværdier:

Eksempel

fruits.set("apples", 200);

Prøv det selv →

<!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>


Metoden get()

Metoden get() henter værdien af en nøgle i et kort:

Eksempel

fruits.get("apples");    // Returns 500

Prøv det selv →

<!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>



Egenskaben size

Egenskaben size returnerer antallet af elementer i et kort:

Eksempel

fruits.size;

Prøv det selv →

<!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>


Metoden delete()

Metoden delete() fjerner et kortelement:

Eksempel

fruits.delete("apples");

Prøv det selv →

<!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>


Metoden has()

Metoden has() returnerer sand, hvis der findes en nøgle i et kort:

Eksempel

fruits.has("apples");

Prøv det selv →

<!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>

Prøv dette:

fruits.delete("apples");
fruits.has("apples");

Prøv det selv →

<!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>


JavaScript-objekter vs. kort

Forskelle mellem JavaScript-objekter og kort:

Objekt

Iterable: Ikke direkte iterable

Størrelse: Har ikke en størrelsesegenskab

Nøgletyper: Nøgler skal være strenge (eller symboler)

Nøglerækkefølge: Nøgler er ikke ordentligt ordnet

Standarder: Har standardnøgler

Kort

Iterable: Direkte iterable

Størrelse: Har en størrelsesegenskab

Nøgletyper: Nøgler kan være enhver datatype

Nøglerækkefølge: Nøgler er sorteret efter indsættelse

Standarder: Har ikke standardnøgler


Metoden forEach()

Metoden forEach() kalder en funktion for hvert nøgle/værdi-par i et kort:

Eksempel

// List all entries
let text = "";
fruits.forEach (function(value, key) {
  text += key + ' = ' + value;
})

Prøv det selv →

<!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>

Metoden entries()

Metoden entries() returnerer et iteratorobjekt med [nøgle, værdier] i et kort:

Eksempel

// List all entries
let text = "";
for (const x of fruits.entries()) {
  text += x;
}

Prøv det selv →

<!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>

Browser support

JavaScript-kort understøttes i alle browsere undtagen Internet Explorer:

Chrome Edge Firefox Safari Opera