Ich versuche, einen Elementindex
zu finden, indem ich eine Liste
durchsuche. Weiß jemand, wie das geht?
Ich sehe, dass es Liste.StartIndex
und Liste.EndIndex
gibt, aber ich möchte etwas ähnliches wie list.index("text")
in Python.
Ich versuche, einen Elementindex
zu finden, indem ich eine Liste
durchsuche. Weiß jemand, wie das geht?
Ich sehe, dass es Liste.StartIndex
und Liste.EndIndex
gibt, aber ich möchte etwas ähnliches wie list.index("text")
in Python.
In Swift 4 kann die Methode firstIndex verwendet werden. Ein Beispiel für die Verwendung des ==
Gleichheitsoperators zum Finden eines Objekts in einem Array anhand seiner id
:
let index = array.firstIndex{ $0.id == object.id }
Auch ein Hinweis zu ==
vs ===
, da viele der bisher geposteten Antworten in ihrer Verwendung unterschieden haben:
==
ist der Gleichheitsoperator. Er überprüft, ob Werte gleich sind.===
ist der Identitätsoperator. Er überprüft, ob zwei Instanzen einer Klasse auf denselben Speicher zeigen. Dies unterscheidet sich von der Gleichheit, da zwei Objekte, die unabhängig voneinander mit denselben Werten erstellt wurden, mithilfe von == als gleich betrachtet werden, jedoch nicht mit ===, da es sich um verschiedene Objekte handelt. (Quelle)Es wäre sinnvoll, mehr über diese Operatoren in der Dokumentation von Swift zu lesen.
Für die benutzerdefinierte Klasse müssen Sie das Equatable-Protokoll implementieren.
import Foundation
func ==(l: MyClass, r: MyClass) -> Bool {
return l.id == r.id
}
class MyClass: Equtable {
init(id: String) {
self.msgID = id
}
let msgID: String
}
let item = MyClass(3)
let itemList = [MyClass(1), MyClass(2), item]
let idx = itemList.indexOf(item)
printl(idx)
Swift 4. Wenn Ihr Array Elemente des Typs [String: AnyObject] enthält. Verwenden Sie also den folgenden Code, um den Index des Elements zu finden
var array = [[String: AnyObject]]()// Speichern Sie Ihre Daten im Array
let objectAtZero = array[0] // das erste Objekt erhalten
let index = (self.array as NSArray).index(of: objectAtZero)
Oder Wenn Sie den Index auf der Grundlage des Schlüssels aus dem Dictionary finden möchten. Hier enthält das Array Objekte der Modellklasse und ich gleiche die id-Eigenschaft ab.
let userId = 20
if let index = array.index(where: { (dict) -> Bool in
return dict.id == userId // Wird den Index der übereinstimmenden id finden
}) {
print("Index gefunden")
}
ODER
let storeId = Int(surveyCurrent.store_id) // Zugriff auf Modellschlüsselwert
indexArrUpTo = self.arrEarnUpTo.index { Int($0.store_id) == storeId }! // Array enthält Modelle und findet spezifisches
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.