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:
-
maptransformeert elk element van de collectie in een ander element, en geeft een collectie terug met hetzelfde aantal elementen. -
flatMappast 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]