Массив, Объект, Набор, Карта

Типы

Множество

  • Упорядоченная коллекция значений с нулевым индексом: она может содержать смесь различных типов данных. Строки, логические значения, числа или даже объекты могут храниться в одном и том же массиве. Его порядок вставки сохраняется.
  • Изменяемый размер: нет необходимости заранее объявлять размер массива.
  • Iterable: его можно использовать с циклом for of.

Методы: push, unshift, pop, shift, map, filter, reduce, concat, slice, splice.

Огромная временная сложность

O(1) — постоянная

  • Вставить/удалить элемент в конце
  • Доступ
  • Толкнуть / поп

O(n) – линейный

  • Вставить/удалить элемент в начале (*индекс всех элементов должен быть сброшен)
  • Поиск
  • Shift/ Unshift/ Concat/ Slice/ Splice
  • orEach/карта/фильтр/уменьшение

Объекты

  • Неупорядоченный набор пар ключ-значение:
    1. Ключ должен быть либо строковым, либо символьным типом данных, где значение может быть любого типа данных.
    2. Чтобы получить значение, вы можете используйте соответствующий ключ. Это может быть достигнуто с помощью записи через точку или записи в квадратных скобках.
  • Не повторяемый: вы не можете использовать его с циклом for of

Методы: Object.keys(), .values(), .entries().

Огромная временная сложность

O(1) — постоянная

  • Вставка — О(1)
  • Удалить — О(1)
  • Доступ — О(1)

O(n) – линейный

  • Поиск по)
  • Object.keys() — O(n)
  • Object.values() — O(n)
  • Object.entries() — O(n)

Набор

  • Набор уникальных значений: набор может содержать сочетание различных типов данных. Вы можете хранить строки, логические значения, числа или даже объекты в наборе sam.
  • Динамический размер: нет необходимости объявлять размер набора перед его созданием.
  • Наборы не поддерживают порядок вставки.
  • Iterable: его можно использовать с циклом for of.

карта

  • Неупорядоченный набор пар ключ-значение:
    1. И ключи, и значения могут относиться к любому типу данных.
    2. Чтобы получить значение, можно использовать соответствующий ключ.
  • Итерируемый: их можно использовать с циклом for of.

Сравнение

Набор против массива

  • Массив содержит повторяющиеся значения, тогда как набор содержит.
  • Порядок вставки поддерживается в массиве, но не в случае набора.
  • Поиск и удаление элемента в наборе выполняется быстрее по сравнению с массивами

Объект против карты

  • Объект неупорядочен, тогда как карта упорядочена.
  • Ключи в объектах могут быть только строковыми или символьными, тогда как в карте они могут быть любого типа.
  • Объект имеет прототип и может содержать несколько ключей по умолчанию, которые могут столкнуться с вашими собственными ключами, если вы не будете осторожны. С другой стороны, карта по умолчанию не содержит никаких ключей.
  • Объект не является итерируемым, в то время как карта является итерируемой.
  • Количество элементов в объекте должно быть определено вручную, поскольку оно легко доступно с помощью свойства размера на карте.
  • Помимо хранения данных, вы можете прикрепить функциональность к объекту, тогда как карты ограничены только хранением данных.

Ссылка

@Codevolution (Ютуб)