Что такое КАРТА?
Представленный в ES6 объект JavaScript Map содержит пары ключ-значение точно так же, как объекты, хотя Map поддерживает порядок вставки и может принимать любой тип ключа.
Объект против карты
Карта была представлена как функция ES6 и имела мало отличий от объектов. Ниже приведены несколько различий между картой и объектом:
- Карта может иметь любой тип ключа, который может быть примитивным типом, объектами или функциями, в то время как объекты не поддерживают все типы. Object поддерживает только один тип данных — String, поэтому даже если мы введем число в качестве ключа, оно будет преобразовано в String в фоновом режиме.
2. С объектами мы можем напрямую преобразовать значение в JSON с помощью JSON.stringify(), в то время как карта не поддерживает JSON.
3. Карта по умолчанию не имеет ключей, а Объект имеет прототип и содержит некоторые ключи по умолчанию. (Хотя в случае Object значение по умолчанию можно обойти, используя Object.create(null))
4. Карту можно легко повторять, в то время как объекты не реализуют итерации.
5. Производительность карты выше, чем у объекта при частом добавлении и удалении ключей-значений.
Методы карты
Ниже приведены некоторые из полезных методов Map:
- Map.set() — set() используется для установки пары ключ-значение в объекте карты.
- Map.get() —get(key) используется для получения значения для определенного ключа. Возвращает undefined, если ключ не может быть найден.
- Map.has() — has(key) возвращает логическое значение, т. е. true или false, независимо от того, присутствует ли переданный ключ в объекте Map или нет.
- Map.delete() —delete(key) возвращает значение true, если переданный ключ присутствует в карте и запись ключа удалена. Он вернет false, если ключ не существует.
- Map.clear() —clear() удаляет все пары ключ-значение из объекта карты.
- Map.keys() — возвращает объект итератора, имеющий только ключи карты.
- Map.values() — возвращает объект итератора, содержащий только значения карты.
- Map.forEach() — forEach(callbackFn) вызывает функцию обратного вызова один раз для каждой пары ключ-значение, интегрированной в порядке вставки.
- Map.size —size используется для получения длины карты.
Когда использовать карту и объект
Варианты использования карты:
- Когда нам приходится часто добавлять или удалять пару ключ-значение.
- Когда клавиши имеют сложную структуру, такую как объекты или функции.
- Когда порядок вставки должен быть сохранен.
Варианты использования объекта:
- Когда у нас есть простая структура для хранения, когда ключи являются строками.
- Когда логика должна применяться для каждой пары ключ-значение.
- Когда нам нужно преобразовать пару ключ-значение в данные JSON.
Заключение
В этой статье мы обсудили, что такое Map, разницу между картами и объектами, некоторые из наиболее полезных методов карты, такие как set, get или clear, а также варианты использования карт и объектов.