Junior — Middle
კოლექციების დამუშავებისას map, flatMap და filterMap მეთოდებს შორის რა განსხვავებაა?
sobes.tech AI
პასუხი AI-სგან
მეთოდები map, flatMap და filterMap გამოიყენება კოლექციების დამუშავებისთვის, მაგრამ მათი მიზნები განსხვავებულია:
-
mapგარდაქმნის თითოეულ ელემენტს კოლექციაში სხვა ელემენტად და აბრუნებს კოლექციას იგივე რაოდენობის ელემენტებით. -
flatMapპირველ რიგში იყენებს ფუნქციას, რომელიც თითოეულ ელემენტზე აბრუნებს კოლექციას, და შემდეგ "გადახარშავს" შედეგს ერთ ფლატ კოლექციად. ეს სასარგებლოა, როდესაც ერთ ელემენტიდან გსურთ მიიღოთ რამდენიმე. -
filterMap(ზოგი ენაში ან ბიბლიოთეკაში, მაგალითად Swift-ში) აერთიანებს ფილტრაციას და ტრანსფორმაციას: ფუნქცია აბრუნებს არჩევანულ მნიშვნელობას, და საბოლოო კოლექციაში შედიან მხოლოდ არა-შეუძლებელი შედეგები.
Swift-ის მაგალითი:
let numbers = [1, 2, 3, 4]
// map: ვამრავლებთ თითოეულ ელემენტს 2-ით
let mapped = numbers.map { $0 * 2 } // [2, 4, 6, 8]
// flatMap: თითოეულ რიცხვზე აბრუნებს მასივს, სადაც ელემენტია და მისი კვადრატი
let flatMapped = numbers.flatMap { [$0, $0 * $0] } // [1, 1, 2, 4, 3, 9, 4, 16]
// filterMap (Swift-ში: compactMap): გარდაქმნის სტრინგებს Int-ად, გამოტოვებს nil-ებს
let strings = ["1", "two", "3"]
let filteredMapped = strings.compactMap { Int($0) } // [1, 3]