Junior — Middle
Millised on erinevused meetodite map, flatMap ja filterMap vahel kolleksioonide töötlemisel?
sobes.tech AI
Vastus AI-lt
Meetodid map, flatMap ja filterMap kasutatakse kogumike töötlemiseks, kuid neil on erinevad eesmärgid:
-
mapteisendab iga kogumiku elemendi teiseks elemendiks ja tagastab kogumi sama arvu elementidega. -
flatMaprakendab esmalt funktsiooni, mis iga elemendi jaoks tagastab kogumi, ning seejärel "lame" tulemuse üheks tasapinnaliseks kogumiks. See on kasulik, kui ühelt elemendilt soovite saada mitu. -
filterMap(mõnedes keeltes või teekides, näiteks Swift) ühendab filtrimise ja teisendamise: funktsioon tagastab valikulise väärtuse, ning lõplikku kogumikku kuuluvad ainult mitte-null tulemused.
Näide Swiftis:
let numbers = [1, 2, 3, 4]
// map: korrutame iga elementi kahega
let mapped = numbers.map { $0 * 2 } // [2, 4, 6, 8]
// flatMap: iga numbri jaoks tagastame massiivi, kus on element ja selle ruut
let flatMapped = numbers.flatMap { [$0, $0 * $0] } // [1, 1, 2, 4, 3, 9, 4, 16]
// filterMap (Swiftis: compactMap): konverteerime stringid int-ks, ignoreerides nil
let strings = ["1", "two", "3"]
let filteredMapped = strings.compactMap { Int($0) } // [1, 3]