Как отобразить уникальные элементы массива с помощью Swift? [дубликат]
этот вопрос уже есть ответ здесь:
- удаление повторяющихся элементов из массива в Swift 35 ответов
- Swift 3 Generics: как найти общий набор из двух общих массивов 2 ответы
у меня есть формула, перенастраивающая массив в качестве примера 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"]