一尘不染

斯威夫特:与indexOf的第二次

swift

let numbers = [1,3,4,5,5,9,0,1]

要找到第一个5,请使用:

numbers.indexOf(5)

我如何找到第二次出现?


阅读 217

收藏
2020-07-07

共1个答案

一尘不染

  • 项目清单

您可以按照以下步骤在剩余的数组切片中再次搜索元素的索引:

编辑/更新: Xcode 11•Swift 5.1或更高版本

extension Collection where Element: Equatable {
    func secondIndex(of element: Element) -> Index? {
        self[(firstIndex(of: element) ?? endIndex)...].dropFirst().firstIndex(of: element)
    }
}

测试:

let numbers = [1,3,4,5,5,9,0,1]
numbers.secondIndex(of: 5)         // 4
2020-07-07