-
map: 方法作用是把数组[T]通过闭包函数把每一个数组中的元素变成U类型的值,最后组成数组[U]。定义如下:
func map(transform: (T) -> U) -> [U]// 将示例数组,每个数字都加10,获得一个新的数组:
let numberArray = [1,2,3,4,5] var result = numberArray.map({\$0 + 10}) print(result) // [11, 12, 13, 14, 15]// 在数字后拼接字符串,返回新的数组let numberArray = [1,2,3,4,5] let resultArray = numberArray.map({"(\$0)只"}) print(resultArray)// 输出结果:["1只", "2只", "3只", "4只", "5只"]
拓展:flatMap 更加强大,可以传入N个处理方法,将处理后得到数据,组合到同一个数组中
let numberArray = [1,2,3,4,5] resultArray = numberArray.flatMap({["\($0)个","\($0 )只"]}) print(resultArray) //输出结果: ["1个", "1只", "2个", "2只", "3个", "3只", "4个", "4只", "5个", "5只"]
-
filter 就是筛选的功能,参数是一个用来判断是否筛除的筛选闭包,根据闭包函数返回的Bool值来过滤值。为True则加入到结果数组中。定义如下:
func filter(includeElement: (T) -> Bool) -> [T]// 找出数组中大于2的数
let numberArray = [1,2,3,4,5] let filteredArray = numberArray.filter({$0 > 2}) print(filteredArray)// 输出结果: [3, 4, 5] -
reduce的作用给定一个类型为U的初始值,把数组[T]中每一个元素传入到combine的闭包函数里面,通过计算得到最终类型为U的结果值。定义如下:
func reduce(initial: U, combine: (U, T) -> U) -> U// 求和
let numberArray = [1, 2, 3] let sum1 = numberArray.reduce(10) { (x, y) -> Int in print("x = (x) y = (y)") return x + y } let sum2 = numberArray.reduce(10) { $0 + $1 }print("sum=(sum1)") // 16 print("sum1=(sum2)") // 16作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS交流群:711315161,不管你是小白还是大牛欢迎入驻 ,分享BAT,阿里面试题、面试经验,讨论技术, 大家一起交流学习成长!