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

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

参考

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,050评论 3 119
  • 每次刷朋友圈的时候,看到集赞。我都会顺手点个赞。这也是举手之劳,何乐而不为呢?但是看到要点进连接,还要关注公众号,...
    peach桃子阅读 1,813评论 2 0
  • 一个孩子就是一个天使,一个天使就是一个希望,一个希望就是一段快乐的成长故事。 然而,这个小天使可能特别受上帝的恩宠...
    7ab5d8f55a78阅读 1,612评论 0 0
  • 陵园中昂首挺立的青松,是你不朽的革命精神,纪念碑下,我们庄严宣誓,用我们最崇高的敬意,向你们问好。瞰视陵园,纪念建...
    慊殇阅读 1,846评论 0 0