Здравствуйте, при изучении языка, дошел до темы Map/Set. Но, не совсем уж и понимаю кардинальное отличие от тех же объектов.
Пишут про то, что ключом может быть любой тип данных. Это как-то пригодится? В каких ситуациях, ключом может быть например массив или объект. Я нахожу применение числового ключа, но, этот способ все так же можно заменить с помощью цикла. (Получается, в данном варианте Map - это просто для облегчения?)
Дальше следующим аргументом, пишут что легче в итерации, так как имеет keys, values и так далее. Так и объект тоже имеет эти методы, единственное что, для объекта на пару строк когда запись будет длиннее)
Дальше идет Set, тут аргумент за то, что нет дубликатов, хотя я могу в обычном объекте сделать все это через цикл и убрать дубликаты, оставив единственные значения. Да, пишут про оптимизацию, что Set лучше оптимизирован.
И все подитоживая, остаются вопросы.
- Почему это не юзают так часто, как хотелось бы? (Я еще не видел ни одного ролика, когда делают что-то интересное, по типу админок, магазинов и так далее, сейчас я вот в проекте на работе, тоже этого не вижу)
- Для чего это действительно нужно? (Это нужно знать, потому-что это просто есть или же есть какие-то места, где он нужен)
И есть ли какие-то примеры, где Вы это использовали? (Желательно примеры, где это поймет джун). Либо, я просто еще не понимаю, для чего это нужно.
Я бы советовал конкретизировать вопрос, привести примеры кода, иллюстрирующие ваше недоумение. Тогда будет предмет для осмысления. Пока что вопрос кандидат на удаление, т.к. это скорее задание "напишите мне лекцию с примерами, чтоб я понял".
Это вы приведите примеры, чтоб отвечающие поняли ваши конкретные проблемы.
Модератор, Как я могу привести пример, если сам так и не понял, что и для чего это нужно? Я привел примеры, до итогов. Я не требую ни от кого лекцию, примеры я не требую, я написал желательно. Свои же примеры, я написал выше. Даже в конце написал вопросы, на которые если ответить, можно и не читать все остальное сверху. Странные у вас правила....
- Почему это не юзают так часто, как хотелось бы? (Я еще не видел ни одного ролика, когда делают что-то интересное, по типу админок, магазинов и так далее, сейчас я вот в проекте на работе, тоже этого не вижу)
Потому что они для решения конкретных узких задач.
- Для чего это действительно нужно? (Это нужно знать, потому-что это просто есть или же есть какие-то места, где он нужен)
Чтобы в ситуациях, где нужен будет сет/мап, не писать свою реализацию сет/мап.
Нужны они для не очень частых случаев, когда объект (по сути тот же Map со строковым ключом) или массив не удобны, либо слишком неэффективны (тут следует загуглить О-большое).
Например при помощи Map ты можешь сопоставить одному объекту другой объект, чего ты никак не можешь сделать при помощи обычных объектов.
А при помощи Set ты можешь получить массив без повторов, и при этом без необходимости при каждой вставке проверять, есть ли такой элемент в массиве, или нет.
Из вопроса ничего не понятно, кроме того, что документацию не читали, гуглить не умеем, о структурах данных понятия не имеем. Грустное зрелище. Душераздирающее. https://learn.javascript.ru/map-set
коротко:
Set - это множество уникальных объектов.
Map - это словарь, где каждому из множества уникальных объектов сопоставлено некое значение (возможно не уникальное).
Совет: изучите структуры данных. Без этого дальше двигаться бессмысленно.
Я еще не видел ни одного ролика, когда делают что-то интересное, по типу админок, магазинов и так далее
Интересное - это, например, реализация библиотек вроде Реакта или Вуе, на которых невозбранно пилятся все эти твои админки, магазины и т.д. Ткнув мышкой в первый попавшийся исходник в реакт-реконсилер, я увидел там и Map, и Set.
И это, заметь, фронт, где большие коллекции бывают далеко не всегда.
Ну а для чего применяются, уже говорилось - для быстрого поиска по нестроковому ключу