美文网首页SwiftiOS进阶指南swift
Swift2.0:map、filter、reduce、dropL

Swift2.0:map、filter、reduce、dropL

作者: xida0325 | 来源:发表于2015-12-05 13:21 被阅读303次

    //初始数组

    letxidaArray = [10,20,30,40]

    //map用于将每个数组元素通过某个方法进行转换。

    //func map (transform: (T) -> U) -> U[]这个方法以一个命名函数transform作为参数,transform负责把元素类型T转成类型U并返回一个类型U的数组。

    //如下函数将原始数组Int类型变为String并且在每个数字后面添加了后缀:xidaMM

    //[10,20,30,40] - > ["10:xidaMM","20:xidaMM","30:xidaMM","40:xidaMM"]

    letarrMap1 =xidaArray.map({"\($0):xidaMM"})

    letarrMap2 =xidaArray.map{ (a:Int) ->Stringin

    return"\(a):xidaMM"

    }

    //filter用于选择数组元素中满足某种条件的元素

    //filter(includeElement: (T) -> Bool) -> T[]以返回true或false的函数includeElement作为参数,对原数组元素调用includeElement时,只有返回true的元素会通过筛选

    //将数组中大于10的元素筛选出来

    //[10,20,30,40] - > [20,30,40]

    letarrFilter1 =xidaArray.filter({$0>10})

    letarrFilter2 =xidaArray.filter{ (a:Int) ->Boolin

    returna>10

    }

    //reduce方法把数组元素组合计算为一个值。

    //reduce(initial: U, combine: (U, T) -> U) -> U接收两个参数,一个为类型U的初始值,另一个为把类型为U的元素和类型为T的元素组合成一个类型为U的值的函数。最终结果整个数组就变成了一个类型为U的值。

    //数组中的数字都加起来的和:

    letsum1 =xidaArray.reduce(0,combine: {$0 + $1})

    letsum2 =xidaArray.reduce(0,combine: +)

    //数组中去掉最后一个对象的和:

    letfinalArr =xidaArray.dropLast().reduce(0, combine: +)

    相关文章

      网友评论

        本文标题:Swift2.0:map、filter、reduce、dropL

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