let numbers = [1,3,4,5,5,9,0,1]
Run Code Online (Sandbox Code Playgroud)
要找到第一个5,请使用:
numbers.indexOf(5)
Run Code Online (Sandbox Code Playgroud)
我如何找到第二次出现?
您可以在剩余的数组切片上执行另一个元素索引搜索,如下所示:
编辑/更新:Xcode 9•Swift 4
extension Collection where Element: Equatable {
func secondIndex(of element: Element) -> Index? {
guard let index = firstIndex(of: element) else { return nil }
return self[self.index(after: index)...].firstIndex(of: element)
}
func indexes(of element: Element) -> [Index] {
var indexes: [Index] = []
var startIndex = self.startIndex
while let index = self[startIndex...].firstIndex(of: element) {
indexes.append(index)
startIndex = self.index(after: index)
}
return indexes
}
}
Run Code Online (Sandbox Code Playgroud)
测试:
let numbers = [1,3,4,5,5,9,0,1]
numbers.secondIndex(of: 5) // 4
numbers.indexes(of: 5) // [3,4]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1292 次 |
| 最近记录: |