В своих предыдущих статьях из серии Структура данных JavaScript я писал о структурах данных, которые вы можете настраивать. В этой статье мы рассмотрим встроенные структуры данных JavaScript. Массивы являются частью встроенной структуры данных в JavaScript, как и объекты. Спецификация ECMAScript 2015 представила два новых типа итерируемых объектов: карты и наборы. Давайте рассмотрим каждый из них ниже.
ОБЪЕКТЫ
Объекты представляют собой пары ключ-значение из неупорядоченных данных. Объекты могут иметь функции и методы, на которые можно ссылаться с помощью точки или квадратных скобок. Вы можете получить доступ к объектам, используя их свойства.
Вот некоторые характеристики объектов в JS.
- Объекты можно повторять с помощью цикла for-in.
- Ключи должны быть уникальными.
- Значения не обязательно должны быть уникальными.
- Несколько свойств могут иметь одно и то же значение в объекте.
фрагмент кода
Операции с объектами и Big O
- Поиск по значению — O(n)
- Добавление, удаление и доступ — O(1)
НАБОР
Set — это набор данных с ключом. Поскольку есть списки, у них нет индексов, как у массивов. Если вы хотите извлечь уникальную коллекцию, можно использовать набор. Некоторые характеристики наборов
- Они динамичны по размеру.
- Порядок вставки не сохраняется.
- Удалить и найти в Set очень быстро!
- Используйте, когда порядок не имеет для вас значения.
фрагмент кода
Набор операций и Big O
- Структура данных add(), delete() и has()in Set имеет временную сложность O(1).
КАРТЫ
Карты похожи на наборы, которые содержат упорядоченные данные. Вот свойства карт
- Карты могут быть чем угодно, включая массив или сам объект.
- Карты используются только в определенных случаях, особенно для извлечения и удаления данных.
- Можно повторять с помощью цикла for-of.
Встроенные методы
Это общие методы, которые используются с картами — has(), get() и set().
фрагмент кода
Это встроенные структуры данных, доступные в JavaScript. Надеюсь, вам понравился этот краткий обзор структур данных Set, Object и Map. Если вам понравилась эта статья, хлопните в ладоши!