Contar las ocurrencias / frecuencia de los elementos de la matriz

En Javascript, estoy tratando de tomar una matriz inicial de valores numéricos y contar los elementos dentro de ella. Idealmente, el resultado sería dos nuevas matrices, la primera que especifica cada elemento único y la segunda que contiene el número de veces que ocurre cada elemento. Sin embargo, estoy abierto a sugerencias sobre el formato de la salida.

Por ejemplo, si la matriz inicial era:

5, 5, 5, 2, 2, 2, 2, 2, 9, 4

Entonces se crearían dos nuevas matrices. El primero contendría el nombre de cada elemento único:

5, 2, 9, 4

El segundo contendría la cantidad de veces que ese elemento ocurrió en la matriz inicial:

3, 5, 1, 1

Porque el número 5 aparece tres veces en la matriz inicial, el número 2 aparece cinco veces y 9 y 4 aparecen una vez.

He buscado mucho una solución, pero nada parece funcionar, y todo lo que he probado ha resultado ser ridículamente complejo. ¡Cualquier ayuda sería apreciada

Gracias :

Respuestas a la pregunta(30)

Su respuesta a la pregunta