Sobes.tech
Junior — Middle

Quelles sont les différences entre les méthodes map, flatMap et filterMap lors du traitement des collections?

sobes.tech IA

Réponse de l'IA

Les méthodes map, flatMap et filterMap sont utilisées pour traiter des collections, mais ont des objectifs différents :

  • map transforme chaque élément d'une collection en un autre élément, renvoyant une collection avec le même nombre d'éléments.

  • flatMap applique d'abord une fonction qui retourne une collection pour chaque élément, puis "aplatit" le résultat en une seule collection plate. Cela est pratique lorsque l'on souhaite obtenir plusieurs éléments à partir d'un seul.

  • filterMap (dans certains langages ou bibliothèques, par exemple Swift) combine filtrage et transformation : la fonction retourne une valeur optionnelle, et seuls les résultats non vides sont inclus dans la collection finale.

Exemple en Swift :

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

// map : multiplie chaque élément par 2
let mapped = numbers.map { $0 * 2 } // [2, 4, 6, 8]

// flatMap : pour chaque nombre, retourne un tableau avec l'élément et son carré
let flatMapped = numbers.flatMap { [$0, $0 * $0] } // [1, 1, 2, 4, 3, 9, 4, 16]

// filterMap (compactMap en Swift) : convertit des chaînes en Int, en ignorant nil
let strings = ["1", "two", "3"]
let filteredMapped = strings.compactMap { Int($0) } // [1, 3]