JavaScript Map
и Set
объекты оба являются итерируемыми объектами. Оба объекта хранятся по паре [key, value]
. Я хочу знать, когда использовать что? Есть ли предпочтения друг над другом?
Javascript Map object vs Set object
Ответ 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.