Swift Array map, filter 和 flatMap使用

  • 用数组的reduce方法实现map的功能
    let arr = [1, 3, 2]
    let res = arr.reduce([]) {
    (a: [Int], element: Int)->[Int] in
    var t = Array(a)
    t.append(element * 2)
    return t
    }

  • 用reduce方法一次求出数组中奇数的和、以及偶数乘积
    let arr = [1, 3, 2, 4]
    let res = (Int, Int) = arr.reduce((0, 1)) {
    (a: (Int, Int), element: Int)->(Int, Int) in
    if element % 2 == 0 {
    return (a.0, a.1 * element)
    }else {
    return (a.0 + element, a.1)
    }
    }
    // res = (4, 8)

  • 求一个数组中的偶数的平方和,链式调用
    let arr = [1, 3, 2, 4]
    let res = arr.filter {
    $0 % 2 == 0
    }.map {
    $0 * $0
    }.reduce(0) {
    $0 + $1
    }

你可能感兴趣的:(Swift Array map, filter 和 flatMap使用)