Ich habe ein Array von Modellobjekten, die ich aus JSON-Daten erstellt habe. Ich habe Tausende von Datensätzen, die Duplikate enthalten, die ich entfernen muss. Ein Datensatz wird als Duplikat betrachtet, wenn er denselben "Namen" und dieselben "Adressattribute" aufweist.Suchen nach Filtermethode zum Entfernen von doppelten Modellobjekten basierend auf zwei Attributen aus Array mit Swift
Das Problem ist, die einzige Möglichkeit, wie ich die doppelten Objekte entfernen kann, ist die Durchführung einer for-Schleife innerhalb einer for-Schleife-Suche, und ich frage mich, ob es keine bessere, effizientere Möglichkeit gibt? Ich denke, dass der beste Ansatz dafür wäre, die "Filter" -Methode zu verwenden, aber ich habe Schwierigkeiten bei der Konfiguration mit einem Array, das Modellobjekte mit mehreren Attributen enthält.
Mein Modell Objekt sieht wie folgt aus:
struct Person {
let id: Int
let name: String
let address: String
init(id:Int, name:String, address:String) {
self.id = id
self.name = name
self.address = address
}
}
Die Art und Weise Ich versuche, das Filtermethode auf meinem Array von Modellobjekten zu verwenden, sieht wie folgt aus (was ich weiß nicht funktioniert):
let uniqueArray = peopleArray.filter { $0.name == $1.name, $0.address == $1.address }
Kann jemand sehen was ich falsch mache?
Ich bekomme die Fehlermeldung, "Contextual Schließung Typ '(Person) -> Bool' erwartet ein Argument, aber zwei wurden in Schließung Körper verwendet. – syedfa
Ich muss die Duplikate entfernen, die in der Sammlung existieren, so dass Meine gefilterte Sammlung enthält nur eindeutige Modellobjekte. Ich möchte nicht einfach nach einem Paar Namen und Adressen gleichzeitig suchen. – syedfa
@syedfa, überprüfen Sie meine aktualisierte Antwort. –