Sobes.tech
Junior — Middle

Wat zijn de verschillen tussen de methoden map, flatMap en filterMap bij het verwerken van collecties?

sobes.tech AI

Antwoord van AI

De methoden map, flatMap en filterMap worden gebruikt voor het verwerken van collecties, maar hebben verschillende doelen:

  • map transformeert elk element van de collectie in een ander element, en geeft een collectie terug met hetzelfde aantal elementen.

  • flatMap past eerst een functie toe die een collectie teruggeeft voor elk element, en "vlakt" vervolgens het resultaat uit tot één platte collectie. Dit is handig wanneer je meerdere elementen uit één wilt krijgen.

  • filterMap (in sommige talen of bibliotheken, bijvoorbeeld Swift) combineert filtering en transformatie: de functie geeft een optioneel waarde terug, en alleen de niet-lege resultaten worden opgenomen in de uiteindelijke collectie.

Voorbeeld in Swift:

let numbers = [1, 2, 3, 4]

// map: vermenigvuldig elk element met 2
let mapped = numbers.map { $0 * 2 } // [2, 4, 6, 8]

// flatMap: voor elk getal, retourneer een array met het element en het kwadraat
let flatMapped = numbers.flatMap { [$0, $0 * $0] } // [1, 1, 2, 4, 3, 9, 4, 16]

// filterMap (compactMap in Swift): converteer strings naar Int, negeer nil
let strings = ["1", "two", "3"]
let filteredMapped = strings.compactMap { Int($0) } // [1, 3]