JavaScript Карты
Карта содержит пары ключ-значение, где ключи могут иметь любой тип данных.
Карта запоминает исходный порядок вставки ключей.
Карта имеет свойство, представляющее размер карты.
Методы Карты
| Метод | Описание |
|---|---|
| new Map() | Создаёт объект new Map (новая Карта) |
| set() | Устанавливает значение для ключа на Карте |
| get() | Получает значение ключа на Карте |
| clear() | Удаляет все элементы с Карты |
| delete() | Удаляет элемент Карты, указанный ключом |
| has() | Возвращает true, если ключ существует на Карте |
| forEach() | Вызывает обратный вызов для каждой пары ключ/значение на Карте |
| entries() | Возвращает объект-итератор с парами [ключ, значение] на Карте |
| keys() | Возвращает объект-итератор с ключами на Карте |
| values() | Возвращает объект-итератор значений на Карте |
| Свойство | Описание |
|---|---|
| size | Возвращает количество элементов карты |
Как создать Карту
Вы можете создать JavaScript Карту с помощью:
- Передача массива в
new Map() - Создайте Карту и используйте
Map.set()
Метод new Map()
Вы можете создать карту, передав массив в конструктор new Map():
Пример
// Создать Карту
const fruits = new Map([
["apples", 500],
["bananas", 300],
["oranges", 200]
]);
Попробуйте сами »
Метод Map.set()
Вы можете добавлять элементы к карте с помощью метода set():
Пример
// Создать Карту
const fruits = new Map();
// Установить значения Карты
fruits.set("apples", 500);
fruits.set("bananas", 300);
fruits.set("oranges", 200);
Попробуйте сами »
Метод set() также можно использовать для изменения существующих значений Карты:
Метод Map.get()
Метод get() получает значение ключа на Карте:
Метод Map.size
Свойство size возвращает количество элементов на карте:
Метод Map.delete()
Метод delete() удаляет элемент Map (Карту):
Метод Map.clear()
Метод clear() удаляет все элементы с Карты:
Метод Map.has()
Метод has() возвращает значение true, если ключ существует на Карте:
Пример
fruits.has("apples");
Попробуйте сами »
Попробуй это:
fruits.delete("apples");
fruits.has("apples");
Попробуйте сами »
Карты и Объекты
typeof вернёт объект:
instanceof Карта вернёт true:
JavaScript Объекты и Карты
Различия между JavaScript Объектами и Картами:
| Объект | Карта | |
|---|---|---|
| Итерабельность | Не прямо итерируемый | Прямо итерируемый |
| Размер | Не имеет свойства size (размер) | Имеет свойство size (размер) |
| Типы ключей | Ключи должны быть строками (или символами) | Ключи могут иметь любой тип данных |
| Упорядоченность ключей | Ключи неупорядочены | Ключи упорядочены за вставкой |
| По умолчанию | Есть ключи по умолчанию | Нет ключей по умолчанию |
Метод Map.forEach()
Метод forEach() вызывает обратный вызов для каждой пары ключ/значение на Карте:
Пример
// Список всех записей
let text = "";
fruits.forEach (function(value, key) {
text += key + ' = ' + value;
})
Попробуйте сами »
Метод Map.keys()
Метод keys() возвращает объект-итератор с ключами на Карте:
Пример
// Список всех ключей
let veggies = "";
for (const x of fruits.keys()) {
veggies += x;
}
Попробуйте сами »
Метод Map.values()
Метод values возвращает объект-итератор со значениями на Карте:
Пример
// Суммировать все значения
let total = 0;
for (const x of fruits.values()) {
total += x;
}
Попробуйте сами »
Метод Map.entries()
Метод entries() возвращает объект-итератор с [ключ, значения] на Карте:
Пример
// Список всех записей
let text = "";
for (const x of fruits.entries()) {
text += x;
}
Попробуйте сами »
Объекты и Ключи
Возможность использовать объекты в качестве ключей - важная особенность карты.
Пример
// Создать Объекты
const apples = {name: 'Apples'};
const bananas = {name: 'Bananas'};
const oranges = {name: 'Oranges'};
// Создать Карту
const fruits = new Map();
// Добавить новые элементы на Карту
fruits.set(apples, 500);
fruits.set(bananas, 300);
fruits.set(oranges, 200);
Попробуйте сами »
Помните: ключ - это объект (apples), а не строка ("apples"):
Поддержка браузерами
JavaScript Карты поддерживаются во всех браузерах, кроме Internet Explorer:
| Chrome | Edge | Firefox | Safari | Opera |

