Sobes.tech
Back to questions
Junior — Middle
81

Объясните принцип работы метода Flat Map и его отличие от обычного Map при обработке коллекций данных.

Companies where asked
СБЕРСБЕР

Answer from AI

sobes.tech AI

Метод map преобразует каждый элемент коллекции, применяя функцию, и возвращает массив результатов. Если функция возвращает коллекцию, то результатом будет массив коллекций.

flatMap сначала применяет функцию к каждому элементу, как map, но затем «выравнивает» (флэтит) вложенные коллекции в один плоский массив.

Пример:

let numbers = [1, 2, 3]

// map с функцией, возвращающей массив
let mapped = numbers.map { Array(repeating: $0, count: $0) }
// mapped = [[1], [2, 2], [3, 3, 3]]

// flatMap с той же функцией
let flatMapped = numbers.flatMap { Array(repeating: $0, count: $0) }
// flatMapped = [1, 2, 2, 3, 3, 3]

Таким образом, flatMap удобен, когда функция возвращает коллекцию, и нужно получить один плоский массив без вложенных массивов.