frecuencia de conteo de caracteres en una cadena usando javascript

Necesito escribir algún tipo de bucle que pueda contar la frecuencia de cada letra en una cadena.

Por ejemplo: "aabsssd"

salida: a: 2, b: 1, s: 3, d: 1

También desea asignar el mismo carácter que el nombre de la propiedad en el objeto. ¿Alguna buena idea de cómo hacer esto?

No estoy seguro de cómo hacerlo.

Aquí es donde estoy hasta ahora:

var arr = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];

function counter(x) {
    var count=0, temp = [];
    x = x.split('');
    console.log(x);
    for(var i=0, len = x.length; i < len; i++) {
        if(x[i] == "a") {
            count++;
        }
    }
    return count;
}
var a = "aabbddd";
console.log(counter(a));

Respuestas a la pregunta(12)

Su respuesta a la pregunta