例如,我有以下课程:
class Person: Any {
dynamic var name: String = ""
dynamic var surname: String = ""
}
Run Code Online (Sandbox Code Playgroud)
另外,我有以下数组与"Person"类的实例:
let person1 = Person(); person1.name = "John"; person1.surname = "Smith"
let person2 = Person(); person2.name = "Ivan"; person2.surname = "Ivanov"
let person3 = Person(); person3.name = "Sam"; person3.surname = "Woodman"
let personList = [person1, person2, person3]
Run Code Online (Sandbox Code Playgroud)
有没有办法以某种方式得到所有约翰斯的指数?
您可以flatMap将人员列表作为枚举列表,以便返回匹配的偏移量.
let indexes = personList.enumerated().flatMap { $1.name == "John" ? $0 : nil }
Run Code Online (Sandbox Code Playgroud)
否则,您可以通过简单的for循环实现此目的.
var indexes = [Int]()
for index in personList.indices {
if personList[index].name == "John" {
indexes.append(index)
}
}
print(indexes)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
57 次 |
| 最近记录: |