Swift version: 5.6
Although dictionaries have a general map()
method, they also have a specialized form of map()
called mapValues()
– it transforms just the values of the dictionary, leaving the keys untouched.
This extra method is useful because dictionaries can’t have duplicate keys, but if you’re only transforming the values from a dictionary then this is not a problem.
Let’s try it out on a dictionary containing the height in centimeters of various people:
let peopleMetric = ["Taylor": 178.0, "Justin": 175.0, "Ed": 173.0]
If we want to convert those heights to inches without changing the keys, we can use mapValues()
like this:
let peopleImperial = peopleMetric.mapValues { $0 / 2.54 }
TAKE YOUR SKILLS TO THE NEXT LEVEL If you like Hacking with Swift, you'll love Hacking with Swift+ – it's my premium service where you can learn advanced Swift and SwiftUI, functional programming, algorithms, and more. Plus it comes with stacks of benefits, including monthly live streams, downloadable projects, a 20% discount on all books, and free gifts!
Sponsor Hacking with Swift and reach the world's largest Swift community!
Available from iOS 8.0 – learn more in my book Pro Swift
This is part of the Swift Knowledge Base, a free, searchable collection of solutions for common iOS questions.
Link copied to your pasteboard.