Junior — Middle
¿Cuáles son las diferencias entre los métodos map, flatMap y filterMap al procesar colecciones?
sobes.tech AI
Respuesta de la IA
Los métodos map, flatMap y filterMap se utilizan para procesar colecciones, pero tienen diferentes propósitos:
-
maptransforma cada elemento de la colección en otro elemento, devolviendo una colección con la misma cantidad de elementos. -
flatMapprimero aplica una función que devuelve una colección para cada elemento, y luego "aplana" el resultado en una sola colección plana. Esto es útil cuando de un solo elemento se quieren obtener varios. -
filterMap(en algunos lenguajes o bibliotecas, por ejemplo, Swift) combina filtrado y transformación: la función devuelve un valor opcional, y solo los resultados no vacíos se incluyen en la colección final.
Ejemplo en Swift:
let numbers = [1, 2, 3, 4]
// map: multiplicamos cada elemento por 2
let mapped = numbers.map { $0 * 2 } // [2, 4, 6, 8]
// flatMap: para cada número, devolvemos un array con el elemento y su cuadrado
let flatMapped = numbers.flatMap { [$0, $0 * $0] } // [1, 1, 2, 4, 3, 9, 4, 16]
// filterMap (compactMap en Swift): convertimos cadenas a Int, descartando nil
let strings = ["1", "two", "3"]
let filteredMapped = strings.compactMap { Int($0) } // [1, 3]