Ios – Unique values of array in swift

iosswift

I'm building an iOS app with swift and i need to get all unique values of array of strings.

I've been reading the apple developer docs but it doesn't seem to have a function for it.

Can someone give me an hint?

Best Answer

There might be a more efficient way, but an extension would probably be most straightforward:

extension Array where Element: Equatable {
    var unique: [Element] {
        var uniqueValues: [Element] = []
        forEach { item in
            guard !uniqueValues.contains(item) else { return }
            uniqueValues.append(item)
        }
        return uniqueValues
    }
}

If order doesn't matter and objects are also hashable:

let array = ["one", "one", "two", "two", "three", "three"]
// order NOT guaranteed
let unique = Array(Set(array))
// ["three", "one", "two"]