Szukaj…
Składnia
- nowa mapa ([iterowalna])
- map.set (klucz, wartość)
- map.get (klucz)
- rozmiar mapy
- map.clear ()
- map.delete (klucz)
- map.entries ()
- map.keys ()
- map.values ()
- map.forEach (callback [, thisArg])
Parametry
Parametr | Detale |
---|---|
iterable | Dowolny obiekt iterowalny (na przykład tablica) zawierający pary [key, value] . |
key | Klucz elementu. |
value | Wartość przypisana do klucza. |
callback | Funkcja wywołania zwrotnego wywoływana z trzema parametrami: wartością, kluczem i mapą. |
thisArg | Wartość, która będzie używana jako this podczas wykonywania callback . |
Uwagi
W Mapach NaN
jest uważany za taki sam jak NaN
, mimo że NaN !== NaN
. Na przykład:
const map = new Map([[NaN, true]]);
console.log(map.get(NaN)); // true
Tworzenie mapy
Mapa to podstawowe mapowanie kluczy na wartości. Mapy różnią się od obiektów tym, że ich klucze mogą być dowolne (wartości pierwotne, a także obiekty), a nie tylko ciągi znaków i symbole. Iteracja nad mapami odbywa się zawsze w kolejności, w której elementy zostały wstawione do mapy, podczas gdy kolejność jest niezdefiniowana podczas iteracji po kluczach w obiekcie.
Aby utworzyć mapę, użyj konstruktora map:
const map = new Map();
Ma opcjonalny parametr, którym może być dowolny obiekt iterowalny (na przykład tablica), który zawiera tablice dwóch elementów - pierwszy to klucz, drugi to wartość. Na przykład:
const map = new Map([[new Date(), {foo: "bar"}], [document.body, "body"]]);
// ^key ^value ^key ^value
Czyszczenie mapy
Aby usunąć wszystkie elementy z mapy, użyj metody .clear()
:
map.clear();
Przykład:
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
Usuwanie elementu z mapy
Aby usunąć element z mapy, użyj metody .delete()
.
map.delete(key);
Przykład:
const map = new Map([[1, 2], [3, 4]]);
console.log(map.get(3)); // 4
map.delete(3);
console.log(map.get(3)); // undefined
Ta metoda zwraca wartość true
jeśli element istniał i został usunięty, w przeciwnym razie false
:
const map = new Map([[1, 2], [3, 4]]);
console.log(map.delete(1)); // true
console.log(map.delete(7)); // false
Sprawdzanie, czy klucz istnieje na mapie
Aby sprawdzić, czy klucz istnieje na mapie, użyj metody .has()
:
map.has(key);
Przykład:
const map = new Map([[1, 2], [3, 4]]);
console.log(map.has(1)); // true
console.log(map.has(2)); // false
Iterowanie map
Mapa ma trzy metody, które zwracają iteratory: .keys()
, .values()
i .entries()
. .entries()
jest domyślnym iteratorem mapy i zawiera pary [key, value]
.
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
}
Mapa ma również .forEach()
. Pierwszy parametr to funkcja wywołania zwrotnego, która zostanie wywołana dla każdego elementu na mapie, a drugi parametr to wartość, która zostanie użyta jako this
podczas wykonywania funkcji wywołania zwrotnego.
Funkcja zwrotna ma trzy argumenty: wartość, klucz i obiekt mapy.
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
Pobieranie i ustawianie elementów
Użyj .get(key)
aby uzyskać wartość według klucza, i .set(key, value)
aby przypisać wartość do klucza.
Jeśli element z określonym kluczem nie istnieje na mapie, .get()
zwraca undefined
.
Metoda .set()
zwraca obiekt mapy, dzięki czemu można łączyć wywołania .set()
.
const map = new Map();
console.log(map.get(1)); // undefined
map.set(1, 2).set(3, 4);
console.log(map.get(1)); // 2
Uzyskiwanie liczby elementów mapy
Aby uzyskać liczbę elementów mapy, użyj właściwości .size
:
const map = new Map([[1, 2], [3, 4]]);
console.log(map.size); // 2