Спросят с вероятностью 10%
Map и Set — это структуры данных, введённые в ES6 (ECMAScript 2015), которые расширяют возможности стандартных объектов и массивов, предоставляя более специализированные и гибкие способы хранения данных.
Map
Это коллекция ключ/значение, где ключи могут быть любого типа, в отличие от объектов, где ключи могут быть только строками или символами. Он сохраняет порядок вставки элементов, что означает, что данные итерируются в том порядке, в котором они были добавлены.
Основные методы:
-
new Map() — создаёт новую коллекцию.-
map.set(key, value) — устанавливает значение value для ключа key.-
map.get(key) — возвращает значение, ассоциированное с ключом key.-
map.has(key) — возвращает true, если key существует в коллекции.-
map.delete(key) — удаляет элемент по ключу key.-
map.clear() — удаляет все элементы из коллекции.-
map.size — возвращает количество элементов в коллекции.let map = new Map();
map.set('1', 'str1'); // строка в качестве ключа
map.set(1, 'num1'); // цифра как ключ
map.set(true, 'bool1'); // булево значение как ключ
console.log(map.get(1)); // num1
console.log(map.get('1')); // str1
console.log(map.size); // 3
Set
Это коллекция, которая хранит только уникальные значения без ключей (или, можно сказать, где значение одновременно и есть ключ). Как и
Map, он сохраняет порядок вставки элементов.Основные методы:
-
new Set() — создаёт новую коллекцию.-
set.add(value) — добавляет значение value в коллекцию, если его там ещё нет.-
set.delete(value) — удаляет значение value из коллекции.-
set.has(value) — возвращает true, если значение value присутствует в коллекции.-
set.clear() — удаляет все элементы из коллекции.-
set.size — возвращает количество элементов в коллекции.let set = new Set();
let john = { name: "John" };
let pete = { name: "Pete" };
let mary = { name: "Mary" };
// посещения, некоторые пользователи заходят многократно
set.add(john);
set.add(pete);
set.add(mary);
set.add(john);
set.add(mary);
console.log(set.size); // 3
for (let user of set) {
console.log(user.name); // John, Pete, Mary
}
Map и Set представляют собой мощные структуры данных, которые делают код более чистым и читаемым, а также предоставляют удобные методы для работы с данными. Map идеально подходит для хранения пар ключ/значение с уникальными ключами, в то время как Set используется для хранения уникальных значений.➡️ Примеры ответов
➡️ Список всех вопросов на Frontend Developer
🧩 Идущий | 🔐 Собесы | 🔐 Тестовые