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 удобен, когда функция возвращает коллекцию, и нужно получить один плоский массив без вложенных массивов.