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