Solución

@fernando_her85·12/5/2026TypeScript
solution.tsTypeScript
export function countWords(...words: string[]): Record<string, number> {

  console.log({words, arguments})
  console.log( Array.isArray(arguments) )


  // 1. Creamos el Map para contar frecuencias
  const map = new Map<string, number>();

  // 2. Recorremos el array de palabras
  for (const word of words) {
    const current = map.get(word) ?? 0;
    map.set(word, current + 1);
  }

  // 3. Convertimos el Map a objeto plano
  const result: Record<string, number> = {};

  for (const [word, count] of map.entries()) {
    result[word] = count;
  }

  return result;
}
3respuestas
Respuestas

Muchísimas gracias, Fernando

Estaba haciéndolo casi bien; el ?? no lo estaba empleando y aquí va genial. Cuando no tienes la solución inmediata qué fácil es obsesionarse con una idea... y eso que salgo del ejercicio cuando es así y paso a otra cosa. Dejo tu solución comentada que me irá bien si vuelvo a pasar por este ejercicio. Réstame 10 puntos ;D

Saludos

@fernando_her85Autor12/5/2026

No creo que mi solución sea la óptima, pero desde que enseño programación, prefiero enseñar código que se entienda a hacer código de una sola línea que lo haga, claro, cuando es necesario que sea sumamente optimo es diferente, pero siempre trato de que mi código se pueda leer fácil.

Tiene sentido, @fernando_her85

La verdad que se entiende perfectamente. El código de una sola línea suele requerir muchas explicaciones. Por mí, perfecto así, tiene la abstracción justa y necesaria.

Saludos y gracias de nuevo

Escribir un comentario

Recuerda ser amable. Estás comentando la solución de otra persona. Comparte tu perspectiva de forma constructiva y respetuosa.

Debes iniciar sesión para publicar un comentario.