Как посчитать количество повторений символов в строке?
Вот способ относительно пристойный:

Array.from(str).reduce((acc, n) => (acc[n] = (acc[n] || 0) + 1, acc), {})
А вот парочка диких:

Object.fromEntries([...new Set(str)].map(n => [ n, str.split(n).length - 1 ]))
или

[...str].sort().join('').match(/(.)\1*/g)?.reduce((acc, n) => (acc[n[0]] = n.length, acc), {}) ?? {}
Диетический детский вариант, если не переварился гениальный однострочник от уважаемого 0xD34F:
const countr = str => {
  const result = {};
  const len = str.length;

  for (let i = 0; i < len; i++) {
    const char = str[i];
    if (!result[char]) result[char] = 0;
    result[char]++;
  }

  return result;
}