Коллекция Map в javascript
Более подробно о типе Map можно узнать на сайте dnzl.ru: Map в JavaScript
Коллекция - это в каком-то роде массив объектов, проиндексированный не только по числовым номерам элементов, но и по их именам, и имеющий свойства и методы. Коллекция отличается от ассоциативного массива именно наличием свойств и методов, т.е. коллекция - сама по себе объект.
В es6 появились новые типы коллекций: Map
, Set
и WeakMap
.
Эти коллекции предоставляют удобные методы для добавления и извлечения членов с помощью ключа или значения вместо индекса (для извлечения по индексу используйте Array
).
Map
Map
- коллекция, в котороя хранятся пары "ключ-значение". Данная коллекция позволяет добавлять, извлекать и удалять члены с помощью ключа.
Ключ и значение может быть любого типа.
- Объект
Map
позволяет перечислять элементы коллекции с помощию методаforEach
. - Свойство
size
позволяет получить размер коллекции. - Для сохранения и извлечения значений
set
иget
. - Метод
set
можно использовать в цепочке.
var m = new Map();
m.set(1, "black");
m.set(2, "red");
m.set("colors", 2).set({x:1}, 777);
m.forEach(function (value, key, mapObj) {
console.log(`key: ${key}, value: ${value}`)
});
//key: 1, value: black
//key: 2, value: red
//key: colors, value: 2
//key: [object Object], value: 777
console.log(`size: ${m.size}`);
//size: 4
При создании Map
можно сразу инициализировать списком значений.
Аргументом new Map
должен быть итерируемый объект (не обязательно именно массив).
let map = new Map([
['1', 'black'],
[1, 'red'],
['colors', 2],
[{x:1}, 777]
]);
map.forEach(function (value, key, mapObj) {
console.log(`key: ${key}, value: ${value}`)
});
//"key: 1, value: black"
//"key: 1, value: red"
//"key: colors, value: 2"
//"key: [object Object], value: 777"
Комментарии к статье