Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

177
Vistas
Is it possible to use reduce with strings in JavaScript?

I wanted to know is it possible to use the reduce method on arrays with strings as well?

For ex: If I have an array like this: [ 'm', 'o', 'o', 'n' ] then I can reduce it to an object like this: { m: 1, o: 2, n: 1 }, that counts the occurrences of all characters in the string.
But if instead I had a string "moon" I wouldn't be able to use the reduce method with it.

I know I can write a custom implementation for reduce, but is there something simpler?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Yes, since Array.prototype.reduce is a generic method, it doesn't require it's this value to necessarily be an array. Meaning reduce is designed not only to work with arrays but to also work with other array-like values like strings.

And in order to use reduce with the string str, you can invoke it on the string by using Function.prototype.call.

const str = "moon";
const strCharCount = Array.prototype.reduce.call(
  str,
  (r, s) => {
    r[s] = (r[s] ?? 0) + 1;
    return r;
  },
  {}
);

console.log(strCharCount);

And if all of that didn't make any sense, you can also transform the string to an array and use reduce as you normally would.

const str = "moon";
const strCharCount = Array.from(str).reduce((r, s) => {
  r[s] = (r[s] ?? 0) + 1;
  return r;
}, {});

console.log(strCharCount);

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda