Junior — Middle
Care sunt diferențele dintre metodele map, flatMap și filterMap în procesarea colecțiilor?
sobes.tech AI
Răspuns de la AI
Metodele map, flatMap și filterMap sunt utilizate pentru procesarea colecțiilor, dar au scopuri diferite:
-
maptransformă fiecare element al colecției într-un alt element, returnând o colecție cu același număr de elemente. -
flatMapaplică mai întâi o funcție care returnează o colecție pentru fiecare element, apoi "aplatizează" rezultatul într-o singură colecție plată. Este util atunci când doriți să obțineți mai multe elemente din unul singur. -
filterMap(în unele limbaje sau biblioteci, de exemplu Swift) combină filtrarea și transformarea: funcția returnează o valoare opțională, iar în colecția finală intră doar rezultatele nenule.
Exemplu în Swift:
let numbers = [1, 2, 3, 4]
// map: înmulțim fiecare element cu 2
let mapped = numbers.map { $0 * 2 } // [2, 4, 6, 8]
// flatMap: pentru fiecare număr, returnăm un array cu elementul și pătratul său
let flatMapped = numbers.flatMap { [$0, $0 * $0] } // [1, 1, 2, 4, 3, 9, 4, 16]
// filterMap (compactMap în Swift): convertim stringurile în Int, ignorând nil
let strings = ["1", "two", "3"]
let filteredMapped = strings.compactMap { Int($0) } // [1, 3]