Declare um objeto arr
para conter o conjunto exclusivo como chaves. Preencher arr
percorrendo a matriz uma vez usando o mapa. Se a chave não tiver sido encontrada anteriormente, adicione a chave e atribua um valor zero. Em cada iteração, incremente o valor da chave.
Dado testArray:
var testArray = ['a','b','c','d','d','e','a','b','c','f','g','h','h','h','e','a'];
solução:
var arr = {};
testArray.map(x=>{ if(typeof(arr[x])=="undefined") arr[x]=0; arr[x]++;});
JSON.stringify(arr)
irá produzir
{"a":3,"b":2,"c":2,"d":2,"e":2,"f":1,"g":1,"h":3}
Object.keys(arr)
retornará ["a","b","c","d","e","f","g","h"]
Para encontrar as ocorrências de qualquer item, por exemplo, b arr['b']
irá imprimir2