Sobes.tech
Junior — Middle

Обяснете принципа на работа на метода Flat Map и неговата разлика от обикновения Map при обработка на колекции от данни.

sobes.tech AI

Отговор от AI

Методът map преобразува всеки елемент от колекцията, като прилага функция и връща масив от резултати. Ако функцията връща колекция, резултатът ще бъде масив от колекции.

flatMap първо прилага функцията към всеки елемент, както map, но след това "изравнява" (flatten) вложените колекции в един плосък масив.

Пример:

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