Swift中的高阶函数:Map、Filter、Reduce和FlatMap

Map

使用 map 来遍历集合并对集合中每一个元素进行同样的操作。

let arr = [1, 2, 3]
let squares = arr.map{$0 * $0}
// print [1, 4, 9]

Filter

filter函数会遍历一个集合,并返回一个数组,其中包含了集合中满足过滤条件的元素。

let result = array.filter{ 
  $0 % 2 == 0
}

Reduce

组合集合中的所有元素并返回一个非集合类型的值

let items = [2.0,4.0,5.0,7.0]
let total = items.reduce(10.0,+)
// 28.0

FlatMap

将一个二维数组拆开展平

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

它可以判断集合中的不可选值,并将不可选值移出集合:

let people: [String?] = ["Tom",nil,"Peter",nil,"Harry"]
let valid = people.flatMap {$0}
// ["Tom", "Peter", "Harry"]
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容