Vergleichen von zwei array von Objekten?
Habe ich eine Klasse A:
class A {
var identifier: String?
var quantity: Int = 0
}
Zwei arrays von Instanzen:
var array1: [A] = [a1, a2, a3, a4]
var array2: [A] = [a5, a6, a7, a8]
Ich weiß nicht, was ist der beste Weg, um zu überprüfen:
array1==array2 if a1.identifier == a5.identifier, a2.identifier == a6.identifier, a3.identifier==a7.identifier, a4.identifier==a8.identifier
im Swift.
Bitte helfen Sie mir...
- array1 und array2 werden immer in der gleichen Größe? show-array zählen ein check auch? oder überprüft werden soll, auf Eigenschaften der einzelnen Elemente in arrays?
- sorry, Ihr zählt sind die random
- so, wenn Sie andere zählt, Sie sollten klassifiziert werden als ungleiche, richtig?
- Was ist für dich gleich? Wenn Sie die gleiche Länge haben? Wenn Sie die gleichen Elemente? Tun, die Elemente haben alle den gleichen index?
- ya... ich habe es, aber wie wäre es mit einem anderen Fall @-@
- Ihre Inhalte sind die gleichen, sorry für mein schlechtes Englisch
- also [a1, a2] == [a2, a1] sollte es wahr sein?
- Ja, ich denke, ich don ' T kümmern sich um...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie versuchen, wie diese:
Davon aus, dass Ihre Daten, wie:
Dies ist die Methode zum vergleichen zweier arrays von Menschen mit der id:
.enumerate()
um die Anzahl der übereinstimmenden Elemente, aber dann filter sieht aus wie{ $0.0.id == $0.1.id }
Zuerst erweitern wir
Equatable
Klasse, eine TROCKEN code, als wenn die 2 arrays werden immer in der gleichen Größe, oder wenn zumindest das erste ist <= als die zweite, die Sie gehen können mit dieser Lösung.Darauf achten, dass Sie arbeiten mit Optionen, die Sie haben können, um zu packen, bevor Sie.
Swift 4
Folgende Methode macht es viel einfacher.
Methode 1 - Mit Gleichsetzbar Protokoll
Schritt 1 - Machen Sie Ihre Klasse 'A' gleichsetzbar ist wie folgt
Step2 - Sortieren von arrays in aufsteigender oder absteigender Reihenfolge
Schritt 3 - Verwendung == oder elementsEqual Vergleich
ODER
Methode 2 (Ohne Gleichsetzbar Protocol)
Schritt 1 - Sortieren-Array wie beschrieben in Methode 1, Schritt 2
Schritt 2 - Verwenden Sie elementsEqual
Lesen Sie mehr über Array-Vergleich hier
versuchen, diesen code, lassen Sie mich wissen, wenn es funktioniert
dann führen Sie eine überprüfung wie unten
Haftungsausschluss: Funktion
toDictionary
wurde, nahm form hierFand ich diese wirklich einfache Lösung an https://www.hackingwithswift.com/example-code/language/how-to-find-the-difference-between-two-arrays
}