Sobes.tech
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:

  • map pretvara svaki element kolekcije u drugi element i vraća kolekciju sa istim brojem elemenata.

  • flatMap najpre 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]