В 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); }
Различия между картой и набором
- Отношение "ключ-значение". Карты хранят пары "ключ-значение", а наборы хранят только уникальные значения.
- Уникальность. В Картах ключи должны быть уникальными, но значения не обязательно должны быть уникальными. В наборах все значения должны быть уникальными.
- Типы ключей. В Картах ключи могут быть значениями любого типа, а наборы не имеют концепции ключей.
Заключение
Структуры данных Map
и Set
в JavaScript можно использовать для различных вариантов использования и потребностей. Карты используются для хранения пар ключ-значение, а наборы используются для хранения набора уникальных значений. Знание и правильное использование этих структур в правильных ситуациях может повысить эффективность и удобочитаемость вашего кода.