Swift高阶函数小计

用 reduce 方法一次求出数组中奇数的和、以及偶数乘积

     let arr1 = [1,3,2,4]
        let ress:(Int,Int) = arr1.reduce((0,1)) { (a:(Int,Int), element) -> (Int,Int) in
            if element % 2 == 0 {
                return (a.0,a.1 * element)
            }else {
                return (a.0 + element, a.1)
            }
        }

reduce 方法实现 map 的功能

   let arr = [1,3,2]
        let res = arr.reduce([]) { (a:[Int], element) -> [Int] in
            var t = Array(a)
            t.append(element * 2)
            return t
        }

求一个数组中偶数的平方和

        let arr3 = [1,3,2,4]
        let rr = arr3.filter {
            $0 % 2 == 0
            }.map {
                $0 * $0
            }.reduce(0) {
                $0 + $1
        }
        print(rr)
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容