Junior — Middle
¿Cuál es la finalidad del método flatMap y en qué se diferencia de map en los flujos de datos?
sobes.tech AI
Respuesta de la IA
El método flatMap se utiliza para transformar los elementos de un flujo, donde cada elemento puede convertirse en otro flujo (o colección), y luego todos estos flujos anidados se combinan en un solo flujo plano. A diferencia de map, que simplemente transforma cada elemento en otro elemento, flatMap "desempaqueta" las estructuras anidadas y las combina.
Ejemplo en Swift usando secuencias:
let numbers = [1, 2, 3]
// map transforma cada elemento en un array con dos elementos
let mapped = numbers.map { [ $0, $0 * 10 ] }
// mapped: [[1, 10], [2, 20], [3, 30]]
// flatMap combina todos los arrays anidados en uno solo
let flatMapped = numbers.flatMap { [ $0, $0 * 10 ] }
// flatMapped: [1, 10, 2, 20, 3, 30]
Por lo tanto, flatMap es útil cuando el resultado de la transformación es una colección y se desea obtener un solo flujo plano de elementos.