Встречается на собеседованиях • сегодня

Расскажи о map и set

`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` — возвращает количество элементов в коллекции.
javascript
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` — возвращает количество элементов в коллекции.
javascript
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` используется для хранения уникальных значений.

Feb. 26, 2024, easyoffer

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы