Sök…
Syntax
- ny karta ([iterable])
- map.set (nyckel, värde)
- map.get (nyckel)
- map.size
- map.clear ()
- map.delete (nyckel)
- map.entries ()
- map.keys ()
- map.values ()
- map.forEach (callback [, thisArg])
parametrar
Parameter | detaljer |
---|---|
iterable | Alla itererbara objekt (till exempel en matris) som innehåller [key, value] -par. |
key | Nyckeln till ett element. |
value | Värdet tilldelat nyckeln. |
callback | Återuppringningsfunktion som kallas med tre parametrar: värde, nyckel och kartan. |
thisArg | Värde som kommer att användas som this vid körning av callback . |
Anmärkningar
I kartor anses NaN
vara samma som NaN
, även om NaN !== NaN
. Till exempel:
const map = new Map([[NaN, true]]);
console.log(map.get(NaN)); // true
Skapa en karta
En karta är en grundläggande kartläggning av nycklar till värden. Kartor skiljer sig från objekt genom att deras nycklar kan vara vad som helst (primitiva värden såväl som objekt), inte bara strängar och symboler. Iteration över kartor görs alltid alltid i den ordning som objekten sattes in på kartan, medan ordningen är odefinierad när iterering över nycklar i ett objekt.
Använd kartkonstruktören för att skapa en karta:
const map = new Map();
Den har en valfri parameter, som kan vara vilket som helst iterbart objekt (till exempel en matris) som innehåller matriser av två element - först är nyckeln, sekunderna är värdet. Till exempel:
const map = new Map([[new Date(), {foo: "bar"}], [document.body, "body"]]);
// ^key ^value ^key ^value
Rensa en karta
För att ta bort alla element från en karta använder .clear()
metoden .clear()
:
map.clear();
Exempel:
const map = new Map([[1, 2], [3, 4]]);
console.log(map.size); // 2
map.clear();
console.log(map.size); // 0
console.log(map.get(1)); // undefined
Ta bort ett element från en karta
För att ta bort ett element från en karta använder .delete()
metoden .delete()
.
map.delete(key);
Exempel:
const map = new Map([[1, 2], [3, 4]]);
console.log(map.get(3)); // 4
map.delete(3);
console.log(map.get(3)); // undefined
Den här metoden returnerar true
om elementet fanns och har tagits bort, annars false
:
const map = new Map([[1, 2], [3, 4]]);
console.log(map.delete(1)); // true
console.log(map.delete(7)); // false
Kontrollera om det finns en nyckel på en karta
För att kontrollera om det finns en nyckel på en karta använder .has()
metoden .has()
:
map.has(key);
Exempel:
const map = new Map([[1, 2], [3, 4]]);
console.log(map.has(1)); // true
console.log(map.has(2)); // false
Iterating Maps
Kartan har tre metoder som returnerar iteratorer: .keys()
, .values()
och .entries()
. .entries()
är standardkarta-iteratorn och innehåller [key, value]
-par.
const map = new Map([[1, 2], [3, 4]]);
for (const [key, value] of map) {
console.log(`key: ${key}, value: ${value}`);
// logs:
// key: 1, value: 2
// key: 3, value: 4
}
for (const key of map.keys()) {
console.log(key); // logs 1 and 3
}
for (const value of map.values()) {
console.log(value); // logs 2 and 4
}
Map har också .forEach()
-metoden. Den första parametern är en återuppringningsfunktion, som kommer att anropas för varje element på kartan, och den andra parametern är det värde som kommer att användas som this
vid exekvering av återuppringningsfunktionen.
Återuppringningsfunktionen har tre argument: värde, nyckel och kartobjektet.
const map = new Map([[1, 2], [3, 4]]);
map.forEach((value, key, theMap) => console.log(`key: ${key}, value: ${value}`));
// logs:
// key: 1, value: 2
// key: 3, value: 4
Få och ställa in element
Använd .get(key)
att få värde för nyckel och .set(key, value)
att tilldela ett värde till en nyckel.
Om elementet med den angivna nyckeln inte finns på kartan .get()
undefined
.
.set()
-metoden returnerar kartobjektet, så att du kan kedja .set()
.
const map = new Map();
console.log(map.get(1)); // undefined
map.set(1, 2).set(3, 4);
console.log(map.get(1)); // 2
Få antalet element på en karta
För att få antalet element på en karta, använd egenskapen .size
:
const map = new Map([[1, 2], [3, 4]]);
console.log(map.size); // 2