JavaScript de Cero a Experto / Proyectos + retos
Reto de entrevista: aplanar un array (recursión)
Reto20 min60 XP
Un array con arrays adentro, con arrays adentro, a cualquier profundidad. Tu misión: aplanarlo en uno solo. Este reto es la puerta de entrada a la recursión —la técnica de una función que se llama a sí misma— que da miedo hasta que hace clic, y entonces la ves en todas partes.
Reto
Aplanar a cualquier profundidad
Media15 min60 XP(×2 sin mirar la solución)
Qué debes construir
Una función aplanar(array) que reciba un array con anidamientos arbitrarios y
devuelva uno de un solo nivel, en orden.
aplanar([1, [2, 3], 4])→[1, 2, 3, 4]aplanar([1, [2, [3, [4]]]])→[1, 2, 3, 4]aplanar([])→[]
Reglas
- Debe funcionar a CUALQUIER profundidad (no solo un nivel).
- Resuélvelo con recursión (no vale usar
Array.prototype.flat(Infinity)—el chiste es construirlo). - Pasa los tests del playground.
15:00
Cuando estés listo, arranca el reloj.
Qué sigue
Ahora agrupamos: dado un array de objetos, organizarlos en grupos por una
propiedad —groupBy, una de las funciones más útiles que existen y que, curioso,
JavaScript tardó años en traer nativa. La construyes tú.