我试图在包含结构的数组中找到一个值的位置。 我的数组看起来像这样
struct User {
var firstName: String?
var lastName: String?
}
var allThePeople = [User(firstName: "John", lastName: "Doe"), User(firstName: "Jane", lastName: "Doe"), User(firstName: "John", lastName: "Travolta")];
有没有办法获取数组中所有“Doe”的位置? (在本例中为 0 和 1)
最佳答案
您可以使用条件过滤 allThePeople
以获取所有姓氏为“Doe”的人。
let allTheDoes = allThePeople.filter { $0.lastName == "Doe" }
您可以枚举数组并将其平面映射到索引数组。
let allTheDoeIndexes = allThePeople.enumerated().flatMap { $0.element.lastName == "Doe" ? $0.offset : nil }
= allThePeople.enumerated().flatMap { $1.lastName == "Doe" ? $0 : nil }
关于arrays - 在包含自定义类的数组中查找值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40262668/