Metody Map w JavaScript
metody new Map()
Można to zrobić, przekazując tablicę do new Map()
Konstruktor do tworzenia Map:
instancja
// Tworzenie Map const fruits = new Map([ ["apples", 500], ["bananas", 300], ["oranges", 200] ]);
Map.get()
Można użyć get()
Metoda pobiera wartość klucza z Map:
instancja
fruits.get("apples");
Map.set()
Można użyć set()
Metoda dodaje element do Map:
instancja
// Tworzenie Map const fruits = new Map(); // ustaw wartości Map fruits.set("apples", 500); fruits.set("bananas", 300); fruits.set("oranges", 200);
set()
Metoda może również być używana do zmiany istniejącej wartości Map:
instancja
fruits.set("apples", 500);
Map.size
size
Atrybut zwraca liczbę elementów w Map:
instancja
fruits.size;
Map.delete()
delete()
Metoda usuwa jeden element z Map:
instancja
fruits.delete("apples");
Map.clear()
clear()
Metoda usuwa wszystkie elementy z Map:
instancja
fruits.clear();
Map.has()
Jeśli w Map istnieje pewien klucz:has()
Metoda zwraca true:
instancja
fruits.has("apples");
Spróbuj poniższego kodu:
fruits.delete("apples"); fruits.has("apples");
Map.forEach()
forEach()
Metoda wywołuje funkcję zwrotną dla każdego pary klucz-wartość w Map:
instancja
// wyświetl wszystkie wpisy let text = ""; fruits.forEach(function(value, key) { text += key + ' = ' + value; });
Map.entries()
entries()
Metoda zwraca obiekt zawierający klucz [key, value] obiekt iteratora:
instancja
// wyświetl wszystkie wpisy let text = ""; for (const x of fruits.entries()) { text += x; }
Map.keys()
keys()
Metoda zwraca obiekt iteratora zawierający klucze Map:
instancja
// wyświetl wszystkie klucze let text = ""; for (const x of fruits.keys()) { text += x; }
Map.values()}
values()
metoda zwraca obiekt iteratora zawierający wartości z Map:
instancja
// Wyświetlanie wszystkich wartości let text = ""; for (const x of fruits.values()) { text += x; }
Można użyć values()
metoda sumuje wartości w Map:
instancja
// Sumowanie wszystkich wartości let total = 0; for (const x of fruits.values()) { total += x; }
Obiekty jako klucze
Wskazówka:Możliwość użycia obiektów jako kluczy to ważna cecha Map.
instancja
// Tworzenie obiektów const apples = {name: 'Apples'}; const bananas = {name: 'Bananas'}; const oranges = {name: 'Oranges'}; // Tworzenie Map const fruits = new Map(); // Dodawanie nowych elementów do Map fruits.set(apples, 500); fruits.set(bananas, 300); fruits.set(oranges, 200);
Uwaga:klucz to obiekt (apples), a nie ciąg znaków ("apples"):
instancja
fruits.get("apples"); // Zwraca undefined
JavaScript Map.groupBy()
ES2024 dodał do JavaScript Map.groupBy()
metoda.
Map.groupBy()
metoda grupuje elementy obiektu na podstawie wartości zwróconej przez funkcję zwrotną.
Map.groupBy()
metoda nie zmienia oryginalnego obiektu.
instancja
// Tworzenie tablicy const fruits = [ {name: "apples", quantity: 300}, {name: "bananas", quantity: 500}, {name: "oranges", quantity: 200}, {name: "kiwi", quantity: 150} ]; // Funkcja zwrotna do grupowania function myCallback({ quantity }) { zwróć quantity > 200 ? "ok" : "niski"; } // Grupowanie według liczby const wynik = Map.groupBy(fruits, myCallback);
Wsparcie przeglądarek
Map.groupBy()
To cecha ES2024.
Od marca 2024 roku nowe przeglądarki wspierają tę cechę:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 117 | Edge 117 | Firefox 119 | Safari 17.4 | Opera 103 |
Wrzesień 2023 roku | Wrzesień 2023 roku | Październik 2023 roku | Październik 2024 roku | Maj 2023 roku |
Ostrzeżenie:
Cechy ES2024 są stosunkowo nowe.
Stare przeglądarki mogą wymagać kodu zastępczego (Polyfill).
Różnica między Object.groupBy() a Map.groupBy()
Object.groupBy()
i Map.groupBy()
Różnica polega na:
Object.groupBy()
Grupowanie elementów do obiektu JavaScript.
Map.groupBy()
Grupowanie elementów do obiektu Map.
Pełny podręcznik Map
Aby uzyskać pełną referencję, odwiedź naszą:Podręcznik JavaScript Map.
Ten podręcznik zawiera opisy i przykłady wszystkich właściwości i metod Map.