Ich versuche, eine Reihe von Personen zu filtern und die Ergebnisse in einer bestimmten Reihenfolge zu erhalten. Was bedeutet, wenn der Benutzer someString eingibt, möchte ich zuerst die Leute zeigen, deren Name mit dem someString übereinstimmt, und dann mit dem someString und danach jedem Namen beginnen, der diesen String enthält. Irgendwie kann ich es mit Array "Filter" tun oder muss ich eine andere manuelle Sortierung danach?Filtern eines Arrays von Objekten mit Prioritäten
Hier ist mein Filtercode:
self.filteredNames = self.names.filter({$0.name.lowercaseString.hasPrefix(text!) | $0.name.lowercaseString.containsString(text!) | $0.allEmails.lowercaseString.containsString(text!.lowercaseString) | $0.allNumbers.lowercaseString.containsString(text!.lowercaseString)})
Ihr Filtercode entspricht nicht Ihrer Beschreibung Ihres Problems. Es sieht so aus, als würden Sie nach verschiedenen Feldern filtern und nicht nach weniger spezifischen Anforderungen für dasselbe Feld. – tebs1200
eigentlich beides. Die Ergebnisse sollten wie angegeben lauten: Namen, die mit der Zeichenfolge übereinstimmen, Namen, die mit dieser Zeichenfolge beginnen, Namen, die diese Zeichenfolge enthalten, E-Mail, die diese Zeichenfolge enthält, Telefonnummern, die diese Zeichenfolge enthalten. – nevgauker