Мы можем работать с map так же, как с массивом?

Прочитал про Map, где его сильно нахваливают
Но как с ним правильно работать?
Например, как мне массив заменить на Map?
К примеру, как в Map делать push по последнему элементу или удалять первый, смещая все элементы?
Т.е. я могу заменить полностью классические массивы на Map или я не так понял предназначение Map и без классических массивов никуда не уйти?
Пытаюсь найти задачи под Map, но не вижу в них смысла, кроме как использовать вместо объектов
Или все с объектов на Map и перешли и они не имеют отношения к конкуренции с массивами?
  • Вопрос задан
  • 188 просмотров
Решения вопроса 1
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
Map ничего общего не имеют с массивами, они реализуют совершенно другую структуру данных - хэш таблицу

От объектов так же есть отличия:
- У объектов в качестве ключа может быть только строка или символ, у Map - любой тип
- Map под капотом всегда представлены как OrderedHashMap (упорядоченная хэш таблица), объекты представлены той же структурой данных, но в отличии от Map после оптимизации могут быть представлены в виде обычных сишных структур, где нужное поле получается по смещению от указателя.
- Для манипуляции с объектами есть множество синтаксического сахара (вроде оператора in или spread (...) оператора), и оптимизатор знает об этом сахаре. У Map есть только его методы, с которыми оптимизатор может сделать не так уж и много (так как некоторые оптимизации не применимы к динамическому диспатчингу, ибо ведут к UB, а JS - язык с гарантированным отсутствием UB)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы