Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alemar11/bb6cca7e9d2195e8a8eb6796d1007608 to your computer and use it in GitHub Desktop.
Save alemar11/bb6cca7e9d2195e8a8eb6796d1007608 to your computer and use it in GitHub Desktop.
Find keys mapped to a value in Swift dictionary
extension Dictionary where Value: Equatable {
/// Returns all keys mapped to the specified value.
/// ```
/// let dict = ["A": 1, "B": 2, "C": 3]
/// let keys = dict.keysForValue(2)
/// assert(keys == ["B"])
/// assert(dict["B"] == 2)
/// ```
func keysForValue(value: Value) -> [Key] {
return flatMap { (key: Key, val: Value) -> Key? in
value == val ? key : nil
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment