diff --git a/FlowCryptAppTests/ExtensionTests.swift b/FlowCryptAppTests/ExtensionTests.swift index b3b7e4dc0..4cb4faf04 100644 --- a/FlowCryptAppTests/ExtensionTests.swift +++ b/FlowCryptAppTests/ExtensionTests.swift @@ -63,6 +63,14 @@ extension ExtensionTests { XCTAssertNotNil(collection?[safe: 0]) } + + func test_unique() { + let collection = [1, 2, 2, 3, 4, 4] + let uniqueCollection = collection.unique() + + XCTAssertEqual(uniqueCollection, [1, 2, 3, 4]) + XCTAssertEqual(uniqueCollection.unique(), uniqueCollection) + } } // MARK: - Calendar diff --git a/FlowCryptCommon/Extensions/CollectionExtensions.swift b/FlowCryptCommon/Extensions/CollectionExtensions.swift index d9306ca70..6505b39a4 100644 --- a/FlowCryptCommon/Extensions/CollectionExtensions.swift +++ b/FlowCryptCommon/Extensions/CollectionExtensions.swift @@ -53,6 +53,7 @@ public extension Array where Element == String { public extension Collection where Element: Hashable { func unique() -> [Element] { - return Array(Set(self)) + var seen: Set = [] + return filter { seen.insert($0).inserted } } }