CodeForge

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ú.