16:45
222
Map ('мэпы') - коллекции, или карты.

В объектах зачастую в качестве свойств используются строки:


В данном случае, к примеру, свойство name является строкой, хоть и записано без кавычек, это всё равно строка.

Что же будет, если в качестве ключа передать не строку, а к примеру число:


А произойдёт то, что 4 превратится в строку и в этом можно убедиться, если вывести в консоль самый первый ключ нашего объекта


Но если в качестве ключа мы попробуем поставить объект, то получим ошибку.

Но бывают ситуации, когда вместо строк в качестве ключей нам нужны другие типы данных.

К примеру, у нас есть список магазинов торговой сети, каждый из них содержит определённый перечень товаров и на каждый из них выделяется определённый бюджет:


К каждому из этих объектов (один объект - это один магазин) нужно добавить его бюджет, таким образом, чтобы сформировались пары магазин - бюджет.

Чтобы создать новую карту:


Созданная новая карта изначально пустая и её нужно заполнить.

В качестве ключей в "мэпах" можно использовать массивы, объекты, функции и т.д. По типу данных "мэпы" - это всё те же объекты, но со своими специфическими методами.

Метод set()

Синтаксис этого метода:


Применительно к нашим магазинам:


Или тоже самое, но цепочкой:


Или как вариант, для удобства читаемости:


Работа цепочки возможна благодаря тому, что каждый раз, когда отрабатывает звено цепочки, обратно возвращается объект map

Если сейчас вывести в консоль содержимое нашей карты:


То увидим:
Map(3) {
{ rice: 500 } => 5000,
{ oil: 200 } => 15000,
{ bread: 50 } => 25000
}
Мы видим что это объект, у которого свойства (ключи) также являются объектами

Цифры бюджетов магазинов могут приходить из каких-то таблиц, либо баз данных


И тогда нам нужно соединить две структуры: массив с магазинами и массив с бюджетами, для этого мы можем использовать обычный цикл, либо метод forEach():


В аргумент [i]shop при переборе по очереди будут попадать каждый из из трёх объектов, содержащихся в массиве shops , при этом i - это порядковый номер каждого из элементов массива.

Если сейчас вывести в консоль содержимое карты, то получим тот же результат, что и до этого.
Категория: 123 | Просмотров: 71 | Добавил: vlad_gevel | Рейтинг: 0.0/0
Всего комментариев: 21 2 »
avatar
0
1 123 • 12:38, 31.03.2022
123
1-1 2-2
avatar