Junior — Middle
Koje su razlike između metoda map, flatMap i filterMap pri obradi kolekcija?
sobes.tech АИ
Одговор од АИ
Metode map, flatMap i filterMap koriste se za obradu kolekcija, ali imaju različite svrhe:
-
mappretvara svaki element kolekcije u drugi element i vraća kolekciju sa istim brojem elemenata. -
flatMapnajpre primenjuje funkciju koja vraća kolekciju za svaki element, a zatim "raščišćava" rezultat u jednu ravnu kolekciju. Ovo je korisno kada želite da dobijete više elemenata iz jednog. -
filterMap(u nekim jezicima ili bibliotekama, na primer Swift) kombinuje filtriranje i transformaciju: funkcija vraća opcionalnu vrednost, i u završnu kolekciju ulaze samo neprazni rezultati.
Primer u Swift:
let numbers = [1, 2, 3, 4]
// map: množimo svaki element sa 2
let mapped = numbers.map { $0 * 2 } // [2, 4, 6, 8]
// flatMap: za svaki broj vraćamo niz sa elementom i njegovim kvadratom
let flatMapped = numbers.flatMap { [$0, $0 * $0] } // [1, 1, 2, 4, 3, 9, 4, 16]
// filterMap (u Swift-u: compactMap): konvertujemo stringove u Int, ignorišući nil
let strings = ["1", "two", "3"]
let filteredMapped = strings.compactMap { Int($0) } // [1, 3]