В JavaScript для хранения данных и управления ими используются различные структуры данных. В этой статье мы рассмотрим структуры данных Map и Set. Мы дадим определение обоим, объясним их примерами и коснемся различий между ними.

Структура данных карты

В JavaScript структура данных Map используется для хранения пар ключ-значение. В отличие от объектов, ключи в Картах могут быть значениями любого типа, а не только строками (объекты, функции и т. д.). Карты также хранят элементы в том порядке, в котором они были добавлены, что позволяет выполнять упорядоченную итерацию.

Пример:

const myMap = new Map();

myMap.set('key1', 'value1');
myMap.set('key2', 'value2');
myMap.set('key3', 'value3');

console.log(myMap.get('key1')); // 'value1'
console.log(myMap.size); // 3

for (const [key, value] of myMap) {
  console.log(key, value);
}

Установить структуру данных

Структура данных Set используется в JavaScript для хранения набора уникальных значений. Даже если вы попытаетесь добавить одно и то же значение в набор несколько раз, набор сохранит это значение только один раз. Наборы также упорядочиваются и хранят элементы в том порядке, в котором они были добавлены, что позволяет выполнять упорядоченную итерацию.

Пример:

const mySet = new Set();

mySet.add(1);
mySet.add(2);
mySet.add(2); // This value is not added because it already exists in the Set.

console.log(mySet.has(1)); // true
console.log(mySet.size); // 2

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

Различия между картой и набором

  1. Отношение "ключ-значение". Карты хранят пары "ключ-значение", а наборы хранят только уникальные значения.
  2. Уникальность. В Картах ключи должны быть уникальными, но значения не обязательно должны быть уникальными. В наборах все значения должны быть уникальными.
  3. Типы ключей. В Картах ключи могут быть значениями любого типа, а наборы не имеют концепции ключей.

Заключение

Структуры данных Map и Set в JavaScript можно использовать для различных вариантов использования и потребностей. Карты используются для хранения пар ключ-значение, а наборы используются для хранения набора уникальных значений. Знание и правильное использование этих структур в правильных ситуациях может повысить эффективность и удобочитаемость вашего кода.