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 |