CodeGym /Kurs Javy /Frontend SELF PL /Nowe struktury danych: Map, Set

Nowe struktury danych: Map, Set

Frontend SELF PL
Poziom 45 , Lekcja 2
Dostępny

3.1 Kolekcja Map

W ECMAScript 2015 (ES6) do JavaScript dodano dwie nowe struktury danych: Map i Set. Te struktury dostarczają bardziej elastyczne i efektywne sposoby przechowywania i zarządzania kolekcjami danych w porównaniu z tradycyjnymi obiektami i tablicami.

Map to struktura danych, która pozwala przechowywać pary klucz-wartość, gdzie klucze mogą być dowolnego typu, w tym także obiekty i funkcje.

1. Tworzenie i inicjalizacja Map:

JavaScript
    
      const map = new Map();
    
  

2. Dodawanie elementów:

Metoda set jest używana do dodawania nowych par klucz-wartość do Map.

JavaScript
    
      map.set('key1', 'value1');
      map.set(2, 'value2');
      map.set({ name: 'objectKey' }, 'value3');
    
  

3. Pobieranie elementów:

Metoda get jest używana do pobierania wartości na podstawie klucza.

JavaScript
    
      const map = new Map();

      map.set('key1', 'value1');
      map.set(2, 'value2');
      map.set({ name: 'objectKey' }, 'value3');

      console.log(map.get('key1')); // 'value1'
      console.log(map.get(2)); // 'value2'
    
  

4. Sprawdzanie obecności klucza:

Metoda has sprawdza, czy klucz istnieje w Map.

JavaScript
    
      const map = new Map();

      map.set('key1', 'value1');
      map.set(2, 'value2');
      map.set({ name: 'objectKey' }, 'value3');

      console.log(map.has('key1')); // true
      console.log(map.has('key3')); // false
    
  

5. Usuwanie elementów:

Metoda delete usuwa element na podstawie klucza.

JavaScript
    
      const map = new Map();

      map.set('key1', 'value1');
      map.set(2, 'value2');
      map.set({ name: 'objectKey' }, 'value3');

      map.delete('key1');
      console.log(map.has('key1')); // false
    
  

6. Czyszczenie Map:

Metoda clear usuwa wszystkie elementy z Map.

JavaScript
    
      const map = new Map();

      map.set('key1', 'value1');
      map.set(2, 'value2');
      map.set({ name: 'objectKey' }, 'value3');

      map.clear();
      console.log(map.size); // 0
    
  

7. Iteracja po Map:

Możesz użyć pętli for...of do iteracji po Map.

Przykład:

JavaScript
    
      const map = new Map();
      map.set('key1', 'value1');
      map.set(2, 'value2');

      for (const [key, value] of map) {
        console.log(`${key}: ${value}`);
      }

      // 'key1: value1'
      // '2: value2'
    
  

3.2 Kolekcja Set

Set to struktura danych, która pozwala przechowywać unikalne wartości dowolnego typu, w tym obiekty i prymitywy.

1. Tworzenie i inicjalizacja Set:

JavaScript
    
      const set = new Set();
    
  

2. Dodawanie elementów:

Metoda add jest używana do dodawania nowych wartości do Set.

JavaScript
    
      set.add(1);
      set.add('value2');
      set.add({ name: 'objectValue' });
    
  

3. Sprawdzanie obecności wartości:

Metoda has sprawdza, czy wartość istnieje w Set.

JavaScript
    
      const set = new Set();

      set.add(1);
      set.add('value2');
      set.add({ name: 'objectValue' });

      console.log(set.has(1)); // true
      console.log(set.has('value3')); // false
    
  

4. Usuwanie elementów:

Metoda delete usuwa wartość z Set.

JavaScript
    
      const set = new Set();

      set.add(1);
      set.add('value2');
      set.add({ name: 'objectValue' });

      set.delete(1);
      console.log(set.has(1)); // false
    
  

5. Czyszczenie Set:

Metoda clear usuwa wszystkie elementy z Set.

JavaScript
    
      const set = new Set();

      set.add(1);
      set.add('value2');
      set.add({ name: 'objectValue' });

      set.clear();
      console.log(set.size); // 0
    
  

6. Iteracja po Set:

Możesz użyć pętli for...of do iteracji po Set.

JavaScript
    
      const set = new Set();
      set.add(1);
      set.add('value2');

      for (const value of set) {
        console.log(value);
      }

      // 1
      // 'value2'
    
  

3.3 Porównanie Map i Set

Zalety Map:

  1. Dowolne klucze: w Map klucze mogą być dowolnego typu, w tym obiekty i funkcje, w przeciwieństwie do obiektów, gdzie kluczami mogą być tylko łańcuchy lub symbole.
  2. Uporządkowane elementy: elementy w Map zachowują kolejność dodawania, co ułatwia iterację po nich w kolejności dodania.
  3. Rozmiar kolekcji: metoda size pozwala szybko uzyskać liczbę elementów w Map.

Zalety Set:

  1. Unikalne wartości: Set automatycznie zapewnia, że wszystkie jego elementy są unikalne.
  2. Uporządkowane elementy: elementy w Set zachowują kolejność dodawania, co ułatwia iterację po nich w kolejności dodania.
  3. Optymalizowane operacje: Set oferuje zoptymalizowane metody do dodawania, usuwania i sprawdzania obecności elementów.

Praktyczne przykłady

Przykład użycia Map do przechowywania informacji o użytkownikach:

JavaScript
    
      const users = new Map();
      users.set(1, { name: 'Alice', age: 25 });
      users.set(2, { name: 'Bob', age: 30 });

      for (const [id, user] of users) {
        console.log(`User ID: ${id}, Name: ${user.name}, Age: ${user.age}`);
      }

      // User ID: 1, Name: Alice, Age: 25
      // User ID: 2, Name: Bob, Age: 30
    
  

Przykład użycia Set do filtrowania unikalnych wartości:

JavaScript
    
      const numbers = [1, 2, 3, 1, 2, 4, 5, 3];
      const uniqueNumbers = new Set(numbers);

      for (const number of uniqueNumbers) {
        console.log(number);
      }

      // 1
      // 2
      // 3
      // 4
      // 5
    
  
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION