我试图在一个包含结构的数组中找到一个值的位置。
我的阵列是这样的

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/

10-11 15:47