Что такое КАРТА?

Представленный в ES6 объект JavaScript Map содержит пары ключ-значение точно так же, как объекты, хотя Map поддерживает порядок вставки и может принимать любой тип ключа.

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

Карта была представлена ​​как функция ES6 и имела мало отличий от объектов. Ниже приведены несколько различий между картой и объектом:

  1. Карта может иметь любой тип ключа, который может быть примитивным типом, объектами или функциями, в то время как объекты не поддерживают все типы. Object поддерживает только один тип данных — String, поэтому даже если мы введем число в качестве ключа, оно будет преобразовано в String в фоновом режиме.

2. С объектами мы можем напрямую преобразовать значение в JSON с помощью JSON.stringify(), в то время как карта не поддерживает JSON.

3. Карта по умолчанию не имеет ключей, а Объект имеет прототип и содержит некоторые ключи по умолчанию. (Хотя в случае Object значение по умолчанию можно обойти, используя Object.create(null))

4. Карту можно легко повторять, в то время как объекты не реализуют итерации.

5. Производительность карты выше, чем у объекта при частом добавлении и удалении ключей-значений.

Методы карты

Ниже приведены некоторые из полезных методов Map:

  1. Map.set() — set() используется для установки пары ключ-значение в объекте карты.
  2. Map.get() —get(key) используется для получения значения для определенного ключа. Возвращает undefined, если ключ не может быть найден.
  3. Map.has() — has(key) возвращает логическое значение, т. е. true или false, независимо от того, присутствует ли переданный ключ в объекте Map или нет.
  4. Map.delete() —delete(key) возвращает значение true, если переданный ключ присутствует в карте и запись ключа удалена. Он вернет false, если ключ не существует.
  5. Map.clear() —clear() удаляет все пары ключ-значение из объекта карты.
  6. Map.keys() — возвращает объект итератора, имеющий только ключи карты.
  7. Map.values() — возвращает объект итератора, содержащий только значения карты.
  8. Map.forEach() — forEach(callbackFn) вызывает функцию обратного вызова один раз для каждой пары ключ-значение, интегрированной в порядке вставки.
  9. Map.size —size используется для получения длины карты.

Когда использовать карту и объект

Варианты использования карты:

  1. Когда нам приходится часто добавлять или удалять пару ключ-значение.
  2. Когда клавиши имеют сложную структуру, такую ​​как объекты или функции.
  3. Когда порядок вставки должен быть сохранен.

Варианты использования объекта:

  1. Когда у нас есть простая структура для хранения, когда ключи являются строками.
  2. Когда логика должна применяться для каждой пары ключ-значение.
  3. Когда нам нужно преобразовать пару ключ-значение в данные JSON.

Заключение

В этой статье мы обсудили, что такое Map, разницу между картами и объектами, некоторые из наиболее полезных методов карты, такие как set, get или clear, а также варианты использования карт и объектов.