Массив, Объект, Набор, Карта
Типы
Множество
- Упорядоченная коллекция значений с нулевым индексом: она может содержать смесь различных типов данных. Строки, логические значения, числа или даже объекты могут храниться в одном и том же массиве. Его порядок вставки сохраняется.
- Изменяемый размер: нет необходимости заранее объявлять размер массива.
- 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 (Ютуб)