map
map就是将元素进行转换,变成另外的值。提供了一个转换函数func transform(value: T) -> U。下面我们来自定义array的map,扩展Array。
extension Array {
func myMap<U>(f: Element -> U) -> [U] {
var result: [U] = []
for elem in self {
result.append(f(elem))
}
return result
}
}
filter
filter对元素进行帅选,返回满足条件的。
func myFilter(f:Element -> Bool)-> [Element] {
var result: [Element] = []
for elem in self {
if f(elem) {
result.append(elem)
}
}
return result
}
reduce
reduce是对元素逐个进行运算,如相加,相乘等。
func myReduce<U>(initialValue: U, combine:(U, Element) -> U) -> U {
var result = initialValue
for elem in self {
result = combine(result, elem)
}
return result
}
最后附上playground。https://github.com/silan-liu/map