Как отобразить уникальные элементы массива с помощью Swift? [дубликат]

этот вопрос уже есть ответ здесь:

у меня есть формула, перенастраивающая массив в качестве примера var Array = [a,s,d,s,f,g,g,h,e]. То, что я хочу, это запустить for loop или какой-то другой вариант, который возвращает меня a,s,d,f,g,h,e - только уникальные значения. Как я могу сделать это с ios Swift?

1 ответов


Если вы не заботитесь о заказе:

просто набором:

let set: Set = ["a", "s", "d", "s", "f", "g" , "g", "h", "e"]
print(set) // ["a", "s", "f", "g", "e", "d", "h"]

Если вы заботитесь о заказе:

используйте это расширение, которое позволяет удалять дубликаты элементов AnySequence, сохраняя при этом порядок:

extension Sequence where Iterator.Element: Hashable {
    func unique() -> [Iterator.Element] {
        var alreadyAdded = Set<Iterator.Element>()
        return self.filter { alreadyAdded.insert().inserted }
    }
}

let array = ["a", "s", "d", "s", "f", "g" , "g", "h", "e"]
let result = array.unique()
print(result) // ["a", "s", "d", "f", "g", "h", "e"]