美文网首页swift摘要
Swift map、filter、reduce函数

Swift map、filter、reduce函数

作者: 笙绳省盛 | 来源:发表于2018-11-06 14:05 被阅读1次
    1. map 可以对数组中的每一个元素做一次处理
    // $0代表数组中的每一个元素
    stringArray.map{
        return $0.characters.count
    }
    

    2.flatMap与map不同之处:
    flatMap返回后的数组中不存在nil,同时它会把Optional解包

    flatMap还能把数组中存有数组的数组(二维数组、N维数组)一同打开变成一个新的数组

       let array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
       let arr2 = array.flatMap{ $0 }
       arr2 // [1, 2, 3, 4, 5, 6, 7, 8, 9]
    

    flatMap也能把两个不同的数组合并成一个数组,这个合并的数组元素个数是前面两个数组元 素个数的乘积

            let fruits = ["apple","orange","puple"]
            let counts = [2,3,5]
            
            let arrNew = counts.flatMap { count in
                fruits.map({ fruit in
                    return fruit + "\(count)"
                })
            }
           arrNew ["apple2", "orange2", "puple2", "apple3", "orange3", "puple3", "apple5", "orange5", "puple5"]
    

    3.filer:过滤,可以对数组中的元素按照某种规则进行一次过滤

    // $0表示数组中的每一个元素
    stringArray.filter{
        return $0.characters.count < 10
    }
    

    4.reduce:计算,可以对数组的元素进行计算

            let stringArray = ["Objective-C", "Swift", "HTML", "CSS", "JavaScript"]
            //第一个参数是初始值
            print(stringArray.reduce("aaa", {
                return $0 == "" ? $1 : $0 + "、" + $1
            }))
           aaa、Objective-C、Swift、HTML、CSS、JavaScript
    

    相关文章

      网友评论

        本文标题:Swift map、filter、reduce函数

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