Swift 数组中元素的索引

Swift 数组中元素的索引,swift,Swift,例如,我有以下课程: class Person: Any { dynamic var name: String = "" dynamic var surname: String = "" } 此外,我还有以下带有“Person”类实例的数组: 有没有一种方法可以获取所有Johns的索引?您可以flatMap将您的人员列表作为枚举列表来返回匹配的偏移量 let indexes = personList.enumerated().flatMap { $1.name == "John

例如,我有以下课程:

class Person: Any {
    dynamic var name: String = ""
    dynamic var surname: String = ""
}
此外,我还有以下带有“Person”类实例的数组:


有没有一种方法可以获取所有Johns的索引?

您可以
flatMap
将您的人员列表作为枚举列表来返回匹配的偏移量

let indexes = personList.enumerated().flatMap { $1.name == "John" ? $0 : nil }
否则,您可以通过一个简单的for循环来实现这一点

var indexes = [Int]()

for index in personList.indices {
    if personList[index].name == "John" {
        indexes.append(index)
    }
}

print(indexes)

不相关,但是从
Any
继承没有意义,因为Swift中的所有类型都可以表示为
Any
,并且
Any
不是一个真正的类,因此从它继承没有任何好处。此外,为什么要使用动态关键字,您使用的是领域?如果这样做,您应该通过将继承从
对象
替换为
任意
来提供真实的代码提取,而不是伪代码提取。
var indexes = [Int]()

for index in personList.indices {
    if personList[index].name == "John" {
        indexes.append(index)
    }
}

print(indexes)