@ntzih

Для чего нужны Map и Set?

Здравствуйте, при изучении языка, дошел до темы Map/Set. Но, не совсем уж и понимаю кардинальное отличие от тех же объектов.

Пишут про то, что ключом может быть любой тип данных. Это как-то пригодится? В каких ситуациях, ключом может быть например массив или объект. Я нахожу применение числового ключа, но, этот способ все так же можно заменить с помощью цикла. (Получается, в данном варианте Map - это просто для облегчения?)

Дальше следующим аргументом, пишут что легче в итерации, так как имеет keys, values и так далее. Так и объект тоже имеет эти методы, единственное что, для объекта на пару строк когда запись будет длиннее)

Дальше идет Set, тут аргумент за то, что нет дубликатов, хотя я могу в обычном объекте сделать все это через цикл и убрать дубликаты, оставив единственные значения. Да, пишут про оптимизацию, что Set лучше оптимизирован.

И все подитоживая, остаются вопросы.

- Почему это не юзают так часто, как хотелось бы? (Я еще не видел ни одного ролика, когда делают что-то интересное, по типу админок, магазинов и так далее, сейчас я вот в проекте на работе, тоже этого не вижу)

- Для чего это действительно нужно? (Это нужно знать, потому-что это просто есть или же есть какие-то места, где он нужен)

И есть ли какие-то примеры, где Вы это использовали? (Желательно примеры, где это поймет джун). Либо, я просто еще не понимаю, для чего это нужно.
  • Вопрос задан
  • 924 просмотра
Пригласить эксперта
Ответы на вопрос 3
vabka
@vabka
Токсичный шарпист
Окей гугл, что такое "структуры данных".

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

Например при помощи Map ты можешь сопоставить одному объекту другой объект, чего ты никак не можешь сделать при помощи обычных объектов.

А при помощи Set ты можешь получить массив без повторов, и при этом без необходимости при каждой вставке проверять, есть ли такой элемент в массиве, или нет.
Ответ написан
Комментировать
phaggi
@phaggi
лужу, паяю, ЭВМы починяю
Из вопроса ничего не понятно, кроме того, что документацию не читали, гуглить не умеем, о структурах данных понятия не имеем. Грустное зрелище. Душераздирающее.
https://learn.javascript.ru/map-set
коротко:
  • Set - это множество уникальных объектов.
  • Map - это словарь, где каждому из множества уникальных объектов сопоставлено некое значение (возможно не уникальное).


Совет: изучите структуры данных. Без этого дальше двигаться бессмысленно.
Ответ написан
Комментировать
Alexandroppolus
@Alexandroppolus
кодир
Я еще не видел ни одного ролика, когда делают что-то интересное, по типу админок, магазинов и так далее

Интересное - это, например, реализация библиотек вроде Реакта или Вуе, на которых невозбранно пилятся все эти твои админки, магазины и т.д. Ткнув мышкой в первый попавшийся исходник в реакт-реконсилер, я увидел там и Map, и Set.

И это, заметь, фронт, где большие коллекции бывают далеко не всегда.

Ну а для чего применяются, уже говорилось - для быстрого поиска по нестроковому ключу
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы