AD

¿Ya dominas lo básico? Un curso estructurado de Swift es la vía rápida para dar el salto.

Ver cursos de Swift en Udemy

Enlace de afiliado. No te cuesta nada extra.

🐦Lecciones de Swift
Lección 42 / 68

Aplanar un array

En esta lección convertirás una lista con listas dentro en una lista plana.

flatMap { $0 } aplica la transformación a cada elemento y aplana un nivel de anidamiento.

El código de ejemplo aplana una lista de listas de números.

Ese «un nivel» es lo que hay que retener: flatMap no aplana en profundidad. Con tres niveles de anidamiento hay que aplicarlo dos veces. Es distinto de lenguajes donde el equivalente aplana todo por defecto.

Cuidado con no confundirlo con la otra variante: compactMap descarta los nil. En su día ambas se llamaban flatMap, y la ambigüedad causaba tanta confusión que Swift 4.1 separó los nombres. Si encuentras código antiguo con flatMap sobre opcionales, es lo que hoy es compactMap.

El caso más frecuente en la práctica es el resultado de un map en el que cada elemento produce varios: te queda una lista de listas, y flatMap lo resuelve en la misma pasada.

📖 Código de referencia
✍️ Tu código
Escribe tu código y pulsa «Ejecutar»

🧪 Este sitio no puede compilar ni ejecutar Swift directamente, así que comprueba al instante si lo que escribiste coincide con el código de referencia (la corrección ocurre por completo en tu navegador; no se envía nada a ningún servidor).

🔗 El mismo tema en otros lenguajes

Mira cómo se escribe lo mismo en otro lenguaje.

Espacio publicitario (banner)
Espacio publicitario (en el artículo)