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