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;
}
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
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.