- Reactive Programming with Swift 4
- Navdeep Singh
- 147字
- 2025-04-04 17:21:12
Resolving duplicates
Swift 4 allows us to initialize a Dictionary from a sequence with duple existence of entries and manage the duplicates easily. Suppose you have an array of friends as follows:
var friends = ["Deapak", "Alex", "Ravi", "Deapak"]
Also suppose that you want to create a Dictionary with all the friends, remove duplicates, and just maintain the count of the number of occurrences that occurred in the initial friends array; you can do this by initiating a new Dictionary, as follows:
let friendsWithMultipleEntries = Dictionary(zip(friends, repeatElement(1, count: friends.count)), uniquingKeysWith: +)
The output will be the following:
["Deapak": 2, "Ravi": 1, "Alex": 1],
This helps you avoid overwriting key-value pairs, without putting in a word. The preceding code besides the shorthand +, uses zip to fix duplicate keys by adding the two contrasting values.
zip(_:_:) creates a sequence of pairs built out of two underlying sequences.