Открыть меню    

Коллекция 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"

Комментарии к статье