Подтвердить что ты не робот

Javascript Map object vs Set object

JavaScript Map и Set объекты оба являются итерируемыми объектами. Оба объекта хранятся по паре [key, value]. Я хочу знать, когда использовать что? Есть ли предпочтения друг над другом?

4b9b3361

Ответ 1

Если вы говорите о типах ES6, они не являются той же структурой данных, даже если Set может быть реализован с помощью Map.

Ваше определение Map прав, но Set представляет собой набор уникальных значений, в отличие от массива, который может иметь дубликаты.

var array = [1, 2, 3, 3];

var set = new Set(array); // Will have [1, 2, 3]
assert(set.size, 3);

var map = new Map();
map.set('a', 1);
map.set('b', 2);
map.set('c', 3);
map.set('C', 3);
map.set('a', 4); // Has: a, 4; b, 2; c: 3, C: 3
assert(map.size, 4);

Ответ 2

Разработчики обычно используют обычные объекты JavaScript, когда им нужны карты.

var obj = {};
obj.name= "Anand Deep Singh";
console.log(obj.name); //logs "Anand Deep Singh"

аналогично в ES6, мы можем использовать обычный объект.

var map = new Map();
map.set("name","Anand Deep Singh");
console.log(map.get("name")); //logs "Anand Deep Singh"

Но заметная вещь Карта не создана с синтаксисом литерального объекта и используется set и get. strong > методы сохранить и данные доступа.

У метода есть, чтобы проверить, существует ли ключ в объекте или нет, удалить метод для удаления объекта и очистить метод для очистки всего объекта.

Установить - это уникальный список значений. Его просто уникальный список.

var set = new Set(["a", "a","e", "b", "c", "b", "b", "b", "d"]);
console.log(set); //logs Set {"a", "e", "b", "c", "d"}

A Невозможно получить доступ как массив, и он предоставляет те же методы, что и Map.