Swift - 数组相关函数

569 阅读2分钟

前言:

最近查看Swift数组的相关函数,感觉自己老是忘记,记录一下,毕竟好记性不如烂笔头吗😊

数组添加某一个值

        var array = ["1","2","3","4","5"]

        //打印参数类型type(of:参数)
        print("array返回的类型是:--->\(type(of: array))");
        print("array=\(array)");
        //数组添加某一个值,在最后一位
        array.append("6")
        print("array=\(array)");
        
        //向数组下标为2的地方插入一个元素
        array.insert("7", at: 2)
        print("array=\(array)");
        
        
        let newArray = ["11","22","33","44","55"]
        //向数组末尾插入数组
        array.append(contentsOf: newArray)
        print("arradd=\(array)");


        let newArray1 = ["hello","word","Swift","OC","C"]
        //向数组下标为4的地方插入一个数组
        array.insert(contentsOf: newArray1, at: 4)
        print("arradd=\(array)");

打印结果:

数组删除某一个值

        //根据下标移除元素
        array.remove(at: 2)
         print("arrdelete=\(array)");
        //移除数组中第一个元素
        array.removeFirst()
         print("arrdelete=\(array)");
         
        //移除数组中最后一个元素
        array.removeLast()
         print("arrdelete=\(array)");
        
        //移除数组中前3个元素
        array.removeFirst(3)
        print("arrdelete=\(array)");
         
        //移除数组中后2个元素
        array.removeLast(2)
         print("arrdelete=\(array)");
         
        //移除数组中所有元素
        array.removeAll()
         print("arrdelete=\(array)");
        

打印结果:

获取指定位置数据

        print("array第一个元素=\(array.first!)")//获取素组中第一个元素
        
        print("array最后一个元素=\(array.last!)")//获取数组中最后一个元素
        
        print("array下标为5的元素=\(array[5])")//获取数组中下标为5的元素

打印结果:

数组遍历

for - in

        for item in array{
            print("for-in值为:\(item)");
        }

打印结果:

下标方式

        for index in 0..<array.count {
            print("下标为:\(index)  值为:\(array[index])");
        }

打印结果:

reversed反向遍历

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

打印结果:

内容和下标enumerated

        for item in array.enumerated(){
            print("item下标为:\(item.offset)  item值为:\(item.element)");
        }
        for (index,item) in array.enumerated(){
            print("值为:\(item)  下标为:\(index)");
        }

打印结果:

map方式

       let _ = array.map { (item) in
            print("map值为:\(item)");
        }

打印结果:

forEach方式

        array.forEach { (item) in
            print("forEach值为:\(item)");
        }

打印结果:

跨步打印

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

打印结果:

filter按条件筛选

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

打印结果:

数组扩展

extension Array where Element: Equatable {


    //获取数组中的指定元素的索引值
    //Parameter item: 元素
    //Returns: 索引值数组
    public func indexes(_ item: Element) -> [Int] {
        var indexes = [Int]()
        for index in 0..<count where self[index] == item {
            indexes.append(index)
        }
        return indexes
    }


    //获取元素首次出现的位置
    //Parameter item: 元素
    //Returns: 索引值
    public func firstIndex(_ item: Element) -> Int? {
        for (index, value) in lazy.enumerated() where value == item {
            return index
        }
        return nil
    }


    //获取元素最后出现的位置
    //Parameter item: 元素
    //Returns: 索引值
    public func lastIndex(_ item: Element) -> Int? {
        return indexes(item).last
    }


    //删除数组中的指定元素
    //Parameter object: 元素
    public mutating func remove(_ object:Element) -> Void {
        for index in self.indexes(object).reversed() {
            self.remove(at: index)
        }
    }
}



暂时到这吧,以后再补充扩展