Skip to content

Commit 045721b

Browse files
authored
Array Extensions like unique, categorise
1 parent ef3065f commit 045721b

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

ArrayExtensions.swift

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
public extension Sequence where Iterator.Element: Hashable {
2+
func unique() -> [Iterator.Element] {
3+
return Array(Set(self))
4+
}
5+
}
6+
7+
public extension Sequence {
8+
func categorise<U : Hashable>(_ key: (Iterator.Element) -> U) -> [U:[Iterator.Element]] {
9+
var dict: [U:[Iterator.Element]] = [:]
10+
for el in self {
11+
let key = key(el)
12+
if case nil = dict[key]?.append(el) { dict[key] = [el] }
13+
}
14+
return dict
15+
}
16+
}

0 commit comments

Comments
 (0)