Swift version: 5.10
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 }
SPONSORED Alex is the iOS & Mac developer’s ultimate AI assistant. It integrates with Xcode, offering a best-in-class Swift coding agent. Generate modern SwiftUI from images. Fast-apply suggestions from Claude 3.5 Sonnet, o3-mini, and DeepSeek R1. Autofix Swift 6 errors and warnings. And so much more. Start your 7-day free trial today!
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.