Skip to content

Instantly share code, notes, and snippets.

@Deub27
Created December 4, 2017 07:43
Show Gist options
  • Save Deub27/b363facc10ec50603bdcf085d15a15c1 to your computer and use it in GitHub Desktop.
Save Deub27/b363facc10ec50603bdcf085d15a15c1 to your computer and use it in GitHub Desktop.
Sequence extension for group by feature
extension Sequence {
func grouped<T>(by criteria: (Element) -> T) -> [T: [Element]] {
var dict = [T: [Element]]()
for element in self {
let key = criteria(element)
if dict.keys.contains(key) == false {
dict[key] = [Element]()
}
dict[key]?.append(element)
}
return dict
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment