Sobes.tech
Junior — Middle

Was sind die Unterschiede zwischen den Methoden map, flatMap und filterMap bei der Verarbeitung von Sammlungen?

sobes.tech KI

Antwort von AI

Die Methoden map, flatMap und filterMap werden zur Verarbeitung von Sammlungen verwendet, haben jedoch unterschiedliche Zwecke:

  • map wandelt jedes Element der Sammlung in ein anderes Element um und gibt eine Sammlung mit der gleichen Anzahl von Elementen zurück.

  • flatMap wendet zunächst eine Funktion an, die für jedes Element eine Sammlung zurückgibt, und "glättet" dann das Ergebnis in eine einzige flache Sammlung. Dies ist nützlich, wenn man aus einem Element mehrere erhalten möchte.

  • filterMap (in einigen Sprachen oder Bibliotheken, z.B. Swift) kombiniert Filterung und Transformation: Die Funktion gibt einen optionalen Wert zurück, und nur nicht-leere Ergebnisse werden in die endgültige Sammlung aufgenommen.

Beispiel in Swift:

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

// map: multipliziert jedes Element mit 2
let mapped = numbers.map { $0 * 2 } // [2, 4, 6, 8]

// flatMap: für jede Zahl wird ein Array mit dem Element und seinem Quadrat zurückgegeben
let flatMapped = numbers.flatMap { [$0, $0 * $0] } // [1, 1, 2, 4, 3, 9, 4, 16]

// filterMap (compactMap in Swift): wandelt Strings in Int um, wobei nil verworfen wird
let strings = ["1", "two", "3"]
let filteredMapped = strings.compactMap { Int($0) } // [1, 3]