Em Javascript, estou tentando pegar uma matriz inicial de valores numéricos e contar os elementos dentro dela. Idealmente, o resultado seria duas novas matrizes, a primeira especificando cada elemento exclusivo e a segunda contendo o número de vezes que cada elemento ocorre. No entanto, estou aberto a sugestões sobre o formato da saída.
Por exemplo, se a matriz inicial fosse:
5, 5, 5, 2, 2, 2, 2, 2, 9, 4
Em seguida, duas novas matrizes seriam criadas. O primeiro conteria o nome de cada elemento exclusivo:
5, 2, 9, 4
O segundo conteria o número de vezes que esse elemento ocorreu na matriz inicial:
3, 5, 1, 1
Como o número 5 ocorre três vezes na matriz inicial, o número 2 ocorre cinco vezes e 9 e 4 aparecem uma vez.
Eu procurei muito por uma solução, mas nada parece funcionar, e tudo o que eu tentei acabou sendo ridiculamente complexo. Qualquer ajuda seria apreciada!
Obrigado :)
ramda.js
para conseguir isso da maneira mais fácil. const ary = [5, 5, 5, 2, 2, 2, 2, 2, 9, 4]; R.countBy(r=> r)(ary)
arr.filter(x => x===5).length
retornaria 3
para indicar que há '3' cinco na matriz.
if (arr.indexOf(value) == arr.lastIndexOf(value))