美文网首页
swift 5.0 数组相关函数

swift 5.0 数组相关函数

作者: 奋斗的小马达 | 来源:发表于2020-12-30 16:49 被阅读0次

    1、数组添加某一个值

            var arradd = ["11","22","33","44","55"]
            print("arradd返回的类型是:--->\(type(of: arradd))");
            print("arradd=\(arradd)");
    
            //数组添加某一个值
            arradd.append("66")//向数组最后添加一个元素
            print("arradd=\(arradd)");
            
            arradd.insert("77", at: 2)//向数组下标为2的地方插入一个元素
            print("arradd=\(arradd)");
            
            
            let arradd1 = ["0011","0022","0033","0044","0055"]
            arradd.append(contentsOf: arradd1)//向数组末尾插入数组
            print("arradd=\(arradd)");
    
            let arradd2 = ["啦啦","哈哈","嗷嗷","啊啊","永远"]
            arradd.insert(contentsOf: arradd2, at: 4)//向数组下标为4的地方插入一个数组
            print("arradd=\(arradd)");
    

    2、数组删除某一个值

           var arrdelete = ["11","22","33","44","55","66","77","88","99"]
            print("arrdelete返回的类型是:--->\(type(of: arrdelete))");
            print("arrdelete=\(arrdelete)");
            
            arrdelete.remove(at: 2)//根据下标移除元素
            print("arrdelete=\(arrdelete)");
            
            arrdelete.removeFirst()//移除数组中第一个元素
            print("arrdelete=\(arrdelete)");
            
            
            arrdelete.removeLast()//移除数组中最后一个元素
            print("arrdelete=\(arrdelete)");
            print("------------------  这个是一个分割线  ---------------")
            
            var arrdelete1 = ["11","22","33","44","55","66","77","88","99"]
            print("arrdelete1=\(arrdelete1)");
    
            arrdelete1.removeFirst(3)//移除数组中前3个元素
            print("arrdelete1=\(arrdelete1)");
            
            arrdelete1.removeLast(2)//移除数组中后2个元素
            print("arrdelete1=\(arrdelete1)");
            
            arrdelete1.removeAll()//移除数组中所有元素
            print("arrdelete1=\(arrdelete1)");
    

    3、获取指定位置数据

            let arrget =  ["11","22","33","44","55","66","77","88","99"]
            print("arrget=\(arrget)");
            
            print("arrget第一个元素=\(arrget.first!)")//获取素组中第一个元素
            
            print("arrget最后一个元素=\(arrget.last!)")//获取数组中最后一个元素
            
            print("arrget下标为5的元素=\(arrget[5])")//获取数组中下标为5的元素
    

    4、数组遍历

            let arrtraverse =  ["11","22","33","44","55","66","77","88","99"]
            print("arrtraverse=\(arrtraverse)");
    

    第一种: for - in

            for model in arrtraverse{
                print("值为:\(model)");
            }
    

    第二种:区间遍历

            for idx in 0...arrtraverse.count-1 {
                print("下标为:\(idx)  值为:\(arrtraverse[idx])");
                }
    

    第三种:反向遍历

               for idx in arrtraverse.reversed() {
                   print("反向:idx =\(idx)");
               }
    

    第四种:有时候我们需要知道当前遍历数组的下标

            for model in arrtraverse.enumerated(){
                print("下标为:\(model.offset)  值为:\(model.element)");
            }
    

    第五种:map

            arrtraverse.map { (element) in
                print("值为:\(element)");
            }
    

    第六种:forEach

            arrtraverse.forEach { (element) in
                print("值为:\(element)");
            }
    

    第七种:跨步遍历(如:从0开始每隔2个打印一次)

            for idx in stride(from: arrtraverse.startIndex, to: arrtraverse.endIndex, by: 2) {
                   print("跨步idx = \(arrtraverse[idx])");
               }
    

    根据某一条件获取符合条件的元素(如:找出数组中大于3的元素)

            let arrInt:[Int] = [1,2,3,4,5]
            let result = arrInt.filter { (element) -> Bool in
                
                return element > 3
            }
            print("值为:\(result)");
    

    5、数组包含

            let arrcontains =  ["11","22","33","44","55","66","77","88","99"]
            print(arrcontains.contains("55"))
    

    6、数组最值

            let arrInt1:[Int] = [1,2,3,4,5]
            print((arrInt1.max()!))
            print((arrInt1.min()!))
    

    7、数组排序
    升序

            let arrInt2 = [1,2,9,3,6,4,10,5]
            let result1 = arrInt2.sorted()//数组升序
            print(result1)
    
            //也可以这样写
    //        let result1 =  arrInt2.sorted { (x, y) -> Bool in
    //             return x < y
    //         }
    
    

    降序

           let result2 =  arrInt2.sorted { (x, y) -> Bool in
                return x > y
            }
            print(result2)
    

    常用例子

            var userList = [UserInfo]()
            let userinfo1 = UserInfo()
            userinfo1.name = "张三"
            userinfo1.phone = "4234"
            userinfo1.age = 29
    
            userList.append(userinfo1)
            
            let userinfo2 = UserInfo()
            userinfo2.name = "李四"
            userinfo2.phone = "1212"
            userinfo2.age = 40
            userList.append(userinfo2)
            
            let userinfo4 = UserInfo()
            userinfo4.name = "赵六"
            userinfo4.phone = "1232"
            userinfo4.age = 30
            userList.append(userinfo4)
            
            
            let userinfo3 = UserInfo()
            userinfo3.name = "王五"
            userinfo3.phone = "3525"
            userinfo3.age = 25
            userList.append(userinfo3)
            
            userList.forEach { (model) in
                print(model.name!)
            }
    
            
            print("------------------  这个是一个分割线  ---------------")
            let aa =  userList.sorted { (model1:UserInfo, model2:UserInfo) -> Bool in
                return model1.age! <  model2.age!
            }
            
            aa.forEach { (model) in
                print(model.name!)
            }
    
    
    class UserInfo {
        var name:String?
        var phone:String?
        var age:Int?
    }
    
    

    相关文章

      网友评论

          本文标题:swift 5.0 数组相关函数

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