| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 
 | // 面试题:用数组的 reduce 方法实现 map 的功能。let arr = [1, 3, 2]
 // map简易实现
 let res = arr.map({$0*2})
 
 // Array.reduce(<
 // 输出数据类型与初始化占位数据类型(initial)一致
 let res2 = arr.reduce([]) {
 (a: [Int], element: Int) -> [Int] in
 var t = Array(a)
 t.append(element * 2)
 return t
 }
 
 
 // 面试题:用 reduce 方法一次求出数组中奇数的和、以及偶数乘积
 // 使用元组,注意占位数据(0, 1),第一联合数据a :(Int, Int),函数输出数据(Int, Int) 三者类型一致
 
 let arr2 = [1, 3, 2, 4]
 
 let res3: (Int, Int) = arr2.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)
 }
 }
 
 |