Junior — Middle
Explique o princípio de funcionamento do método Flat Map e a sua diferença em relação ao Map normal ao processar coleções de dados.
sobes.tech IA
Resposta da IA
O método map transforma cada elemento da coleção aplicando uma função e retorna um array de resultados. Se a função retornar uma coleção, o resultado será um array de coleções.
flatMap primeiro aplica a função a cada elemento, como map, mas depois "achata" (flatten) as coleções aninhadas em um único array plano.
Exemplo:
let numbers = [1, 2, 3]
// map com uma função que retorna um array
let mapped = numbers.map { Array(repeating: $0, count: $0) }
// mapped = [[1], [2, 2], [3, 3, 3]]
// flatMap com a mesma função
let flatMapped = numbers.flatMap { Array(repeating: $0, count: $0) }
// flatMapped = [1, 2, 2, 3, 3, 3]
Assim, flatMap é útil quando a função retorna uma coleção e você deseja obter um array plano sem arrays aninhados.