swift-tips之如何查询数组对象的index

Swift-Version:4.2.1git

正文

咱们在开发中常常会碰到这样一种需求:查找某个element在数组中的index。咱们能够经过apple 的API来获取,就是下面Swift中数组提供的两个API:github

//获取第一个element的index
public func firstIndex(of element: Element) -> Int?
//获取最后一个element的index
public func lastIndex(of element: Element) -> Int?
复制代码

示例:

  • 基本类型
let num = [11,22,33,44,55,33]
//输出2
print(num.firstIndex(of: 33))
//输出5
print(num.lastIndex(of: 33))
复制代码
  • 对象类型
class Student {
    var name = ""
    init(name: String) {
        self.name = name
    }
}
var students = [Student]()
let stu1 = Student(name: "jack")
let stu2 = Student(name: "rose")
let stu3 = Student(name: "mj")
students = [stu1, stu2, stu3]
let index = students.firstIndex(where: {$0===stu1})
print(index)//optional(0)
复制代码

注:

  • 该API返回的值是一个optional,由于可能存在数组不包含查询的element的状况
  • 经过API的名字能够看出,只能查找第一个element和最后一个element,并不能查找中间的element。好比上面的数组若是出现三次33,这两个API只能返回第一个和最后一个的index

个人github-blog

参考

相关文章
相关标签/搜索