#Challenge 18
1 messages · Page 1 of 1 (latest)
Mi solución del día
Mi solución Reto #18
Mi Solución al reto
Mi solución xd
||```js
export default function fixFiles(files) {
const occurenciesOf = {}
return files.map( file => {
occurenciesOf[ file ] = ( occurenciesOf[ file ] ?? 0 ) + 1
const counter = occurenciesOf[ file ] > 1 ? (${occurenciesOf[ file ]-1}) : ''
return ${file}${counter}
})
}
Reto 18
Creo que ese es del reto #17 😄
Ummm, personalmente no le veo mucho sentido a usar reduce aquí. No es que no funcione, pero semánticamente tampoco estás "reduciendo" algo. Para mí, si lo que haces es pasar de un array con N valores a otro array con N valores, lo que encaja mejor semánticamente es un map. Obviamente se puede resolver con cualquier función que itere (hasta con un find si quieres), pero al leer el código puede que no quede claro qué es lo que estás haciendo y requiera de más lecturas el código para entender cuáles son tus intenciones.
MI solucion de hoy.
Mi solución al reto de hoy. Con la ayuda de github copilot que tras fallar un par de intentos me ha ayudado a aproximarme a la solución. 
Sí, creo que es lo primero que se me ocurrió, pero sería más apropiado con map. Es la manía de usar reduce para todo 😆
Otra solución con map
Este es el Reto 18
Me sorprende, fíjate, que en general se use tanto reduce con lo poco intuitivo que es.
Echamos en falta las tuyas 😅
El problema es a Array le faltan muchos métodos interesantes, como por ejemplo si quieres sumar todos los elementos no tienes un sum, quieres contar no hay un count, y así con varios mas. Entonces no queda otra que usar reduce que es la manera mas genérica de iterar sobre los elementos.
Claro, esa es la idea de reduce, pero en general, veo que se usa para iterar y devolver arrays, que bien podrían haberse obtenido con filter o map. Como digo, todos los métodos acaban iterando sobre los elementos del array y podrían usarse para cualquier cosa, pero la idea es que hagan lo que el método dice (filtrar, mapear, reducir). Si el objetivo no es ninguna de esas cosas, siempre tienes el for clásico, forEach, for of, que iteran y tienes que ver el cuerpo para saber qué es lo que se pretende. Por eso, cuando veo un reduce o forEach que funciona como un map, un gatito muere en alguna parte del mundo 😅
Reto 18