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