Un modo è quello di utilizzare un set:
let array = ["one", "one", "two", "two", "three", "three"]
let unique = Array(Set(array))
// ["one", "two", "three"]
Si potrebbe anche creare un'estensione che filtra attraverso la matrice più esplicitamente:
extension Array where Element : Equatable {
var unique: [Element] {
var uniqueValues: [Element] = []
forEach { item in
if !uniqueValues.contains(item) {
uniqueValues += [item]
}
}
return uniqueValues
}
}
NOTA
La matrice unica sarà in un ordine non specificato e potrebbe essere necessario ordinarlo. A volte è meglio farlo da soli enumerando, potresti scrivere un'estensione.
Potrebbe essere buono per fare un prolungamento (Swift 2):
extension Array where Element : Hashable {
var unique: [Element] {
return Array(Set(self))
}
}
Probabilmente ci sono modi più ottimizzato per fare ciò che si vuole, ma in questo modo è semplice e veloce.
Cerca in NSSet o NSOrderedSet. – rdelmar
Io uso il dollaro. '$ .uniq (array)' https://github.com/ankurp/Dollar#uniq---uniq –