Как конвертировать коллекцию Map в Set и наоборот?

На learn.javascript.ru пишется, что метод forEach() может иметь 2 параметра в качестве value.

Для чего? Пишется, что...

Это сделано для совместимости с объектом Map, в котором колбэк forEach имеет 3 аргумента. Выглядит немного странно, но в некоторых случаях может помочь легко заменить Map на Set и наоборот.

Также set.keys() – это то же самое, что и set.values(). Пишется, что это тоже используется для совместимости коллекций Map и Set.

Вопрос: Как конвертировать Map в Set и наоборот? Не могу найти информацию


Ответы (1 шт):

Автор решения: Grundy

До появления Map и Set был только массив, соответственно существует много кода, в котором массив используется там, где на самом деле нужны Map, либо Set.

Для того, чтобы не пришлось много переписывать, интерфейсы перебора для коллекций Map и Set сделали такими же как и для массива.

Поэтому вместо переписывания кода самого алгоритма, достаточно просто передать объект другого типа.

→ Ссылка