美文网首页
swift-tips之如何查询数组对象的index

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

作者: 上帝也是码农 | 来源:发表于2018-11-05 20:03 被阅读9次

Swift-Version:4.2.1

正文

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

//获取第一个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

参考

相关文章

网友评论

      本文标题:swift-tips之如何查询数组对象的index

      本文链接:https://www.haomeiwen.com/subject/yulexqtx.html