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

2017-06-20  本文已影响10人  keisme

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"]
上一篇下一篇

猜你喜欢

热点阅读