美文网首页
Swift学习之关于Array的方法

Swift学习之关于Array的方法

作者: 煎包小混沌 | 来源:发表于2018-08-12 12:44 被阅读0次
    基本方法
    var array = [1,2,3,4,5]
    //insert插入
    array.insert(10, at: 1)   
    //remove移除
    array.remove(at: 2)
    //append添加
    array.append(3)
    //下标替换
    array[0] = 11
    

    一:filter:过滤数组中不满足条件的元素,返回满足条件的元素组成的数组

    筛选数组元素
    var array = [1,2,3,4,5]
    let filterAry = array.filter { $0 > 3 }
    //$0代表array中的元素
    //返回大于3的元素组成的数组
    print(filterAry)
    //打印
    [4, 5]
    

    二:map:将原来数组中的元素映射到新的数组中

    映射数组元素(可转化元素类型)
    var array = [1,2,3,4,5]
    let mapAry = array.map { (a) -> String in
        return "\(a)" + "b"
    }
    //映射成字符串类型
    print(mapAry)
    //打印
    ["1b", "2b", "3b", "4b", "5b"]
    

    三:flatMap:检查数组中有没有嵌套数组,把嵌套的数据解构再重组成一个数组

    将嵌套数组,解构成一个非嵌套数组
    var array = [ [1] , [2], [3], [4], [5]]
    let flatMapArray = array.flatMap{ $0 }
    //解套
    print(flatMapArray)
    //打印
    [1, 2, 3, 4, 5]
    

    三点一:compactMap:过滤数组中出现的nil和可选类型

    var array: [Int?] = [1, 2, 3, 4, nil, 5]
    print(array)
    let compactMapAry = array.compactMap { (a) -> Int? in
        a
    }
    print(compactMapAry)
    //打印
    [Optional(1), Optional(2), Optional(3), Optional(4), nil, Optional(5)]
    [1, 2, 3, 4, 5]
    

    四:reduce:可以把数组变成一个元素,首先需要指定一个初始值,然后在闭包中写一个reduce的规则,接着reduce方法会开始递归的对数组中的元素进行闭包运算,直到算出最后一个结果。

    将数组变成一个元素
    var array = [1,2,3,4,5]
    //let reduce = array.reduce("a"){ "\($0)" + "\($1)" }
    let reduce = array.reduce("a") { (a1, a2) -> String in
        return "\(a1)" + "\(a2)"
    }
    //上面的写法是简写
    print(reduce)
    //打印
    a12345
    

    五:sorted:排序

    var array = [2,6,1,4,5]
    //let sortAry = array.sorted()
    let sortAry = array.sorted { (a1, a2) -> Bool in
        return a1 < a2
    }
    print(sortAry)
    //打印
    [1, 2, 4, 5, 6]
    

    六:forEach:函数是遍历方法,符合函数式变成的规范。

    注意,在forEach闭包中,return不会中断整个遍历
    var array = [1,2,3,4,5]
    array.forEach { (a1) in
        if a1 == 3 {
            return
        }
        print(a1)
    }
    //打印
    1
    2
    4
    5
    

    七:contains:判断数组中是否包含指定元素,存在则返回true

    判断数组中是否包含指定元素
    var array = [1,2,3,4,5]
    let isContains = array.contains(2)
    print(isContains)
    //打印
    true
    

    八:indexOf:判断数组中是否包含指定元素,存在则返回元素在数组中的下标,否则返回nil

    判断数组中是否包含指定元素
    var array = [1,2,3,4,5]
    let isIndexOf = array.index(of: 3)
    print(isIndexOf)
    //打印
    Optional(2)
    

    九:prefix、suffix:获取数组从头或从尾开始的一段片段

    截取片段
    var array = [1,2,3,4,5]
    let prefixAry = array.prefix(upTo: 2)
    let 
    print(prefixAry)
    //打印
    [1, 2]
    
    let suffixAry = array.suffix(from: 2)
    print(suffixAry)
    //打印
    [3, 4, 5]
    

    十:dropFirst、dropLast:与prefix、suffix互补的方法,获取去掉头或者尾的某片段

    截取片段
    var array = [1,2,3,4,5]
    let dropFirstAry = array.dropFirst(2)
    print(dropFirstAry)
    //dropFirst(2):从头到第二个元素为止
    //打印
    [3, 4, 5]
    
    let dropLast = array.dropLast(2)
    print(dropLast)
    //dropLast(2):从尾到第二个元素为止
    //打印
    [1, 2, 3]
    

    十一:带下标的数组遍历

    var array = [1,2,3,4,5]
    for (i, temp) in array.enumerated() {
        print(i, temp)
    }
    //打印
    0 1
    1 2
    2 3
    3 4
    4 5
    

    相关文章

      网友评论

          本文标题:Swift学习之关于Array的方法

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