Set e Map do Javascript
Eu nunca vi em nenhum código o uso do set e do map no javascript apesar de parecer bastante útil, alguém sabe me dizer porquê?
Map: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map Set: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set
alguém sabe me dizer porquê?
Não sei dizer o motivo exato, então só posso especular.
Talvez seja por desconhecimento. As pessoas aprendem a usar arrays e objetos, e acham que é o suficiente (pois de fato "funcionam" pra maioria dos casos).
Talvez seja por não ter syntax sugars que deixariam o seu uso mais conveniente. Por exemplo, no Map
tenho que fazer map.get(1)
, enquanto no array posso fazer array[1]
. Mais ainda, tenho que fazer map.get('abc')
enquanto que em um objeto posso fazer obj.abc
. Para criar um objeto posso fazer obj = { nome: 'Fulano', idade: 42 }
, com o Map
tenho que fazer map = new Map([['nome', 'Fulano'], ['idade', 42]])
. Claro que isso não deveria ser desculpa para não usar, mas acredito que a "preguiça" é um fator que influencia.
Enfim, que bom que vc os descobriu, eles são úteis sim. De forma geral, cada estrutura de dados possui prós e contras, casos em que é melhor que as outras, etc. O importante é saber que elas existem e em quais casos cada uma é a mais adequada.
Leitura complementar: https://javascript.info/map-set
O Set e o Map são bons. Particularmente já utilizei o SET. Acredito que o uso pequeno se dê por conta de não ser muito conhecido. Pois em aplicações reais existem vários casos onde aplicados podem ser muito melhores do que outras soluções.
São pouco utilizados pois os objetos padrões do javascript já tem propriedades que permitem que sejam usados como sets e mapas. Com limitações, claro, por isso existem o Set e o Map e sim ambos são utilzidos.
Eu pessoalmente sempre utilizo Maps explicitamente para 'tabelas' ao inves de usar objetos.