Farlanki

map,reduce和filter

字数统计: 334阅读时长: 1 min
2015/12/05 Share

Map

map方法的功能是:对数组中的每个元素调用指定的方法,生成一个新的数组并返回.
例如,如果一个数组是[1,2,3,4,5,6,7,8,9]并且该指定的方法是f(x)=x^2,那么map()方法完成的功能如下:

Reduce

reduce方法的效果是
reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
就是说先把一个数组的第一,第二个元素作为参数,调用f()方法,把返回值和数组的第三个元素再调用f()方法,一直进行到数组的最后一个元素为止.最后返回一个值.

Filter

filter方法用于过滤数组,遍历数组元素,把元素作为参数传入判断的函数,若函数返回真则元素保留在新的数组中,返回新的数组.

swift中的使用

由于swift的$符号带有代表参数的功能,所以在swift中运用这几个函数将十分简洁

map

1
func map<U>(transform: (T) -> U) -> U[]
1
["10","20","30"].map({"\($0)元"})

返回[“10元”,”20元”,”30元”]

reduce

1
func reduce(initial: U, combine: (U, T) -> U) -> U
1
[10,20,30].reduce(0,{$[0]+$[1]})

返回60

filter

1
func filter(includeElement: (T) -> Bool) -> T[]
1
[10,20,30].filter({$[0]> 10})

返回[20,30]

CATALOG
  1. 1. Map
  2. 2. Reduce
  3. 3. Filter
  4. 4. swift中的使用
    1. 4.1. map
    2. 4.2. reduce
    3. 4.3. filter