1: map用于将每个数组元素通过某个方法进行转换。
例如:
我们用一个Int类型数组存储商品金额,想把每个金额后面添加一个字符“.00元”,把数组转成字符串数组
let numbers2 = [10, 15, 99, 66, 25];
let totalNumber2 = numbers2.map({money in "(money)元"})
print(totalNumber2)
使用 flatMap
函数替代 map
函数的原因在于前者能够忽略可选值为 nil 的情况。例如flatMap([0,nil,1,2,nil])
的结果是[0,1,2]
。处理那些没有 city 属性的情况这 会非常有用。
2: filter用于选择数组元素中满足某种条件的元素。
let numbers2 = [10, 15, 99, 66, 25];
let totalNumber2 = numbers2.filter { money in money > 30}
print(totalNumber2)
证明字符串中含有某个单词
let words = ["Swift","iOS","cocoa","OSX","tvOS"]
let tweet = "This is an example tweet larking about Swift"
let valid = !words.filter({tweet.containsString($0)}).isEmpty
或者
words.contains(tweet.containsString)
3:reduce方法把数组元素组合计算为一个值。
我们使用上面例子计算数组元素的和,结果应该为215
let numbers2 = [10, 15, 99, 66, 25];
let totalNumber2 = numbers2.reduce(200, combine: { $0+$1 })
print(totalNumber2)
反转数组:
// $0 指累加器(accumulator),$1 指遍历数组得到的一个元素
[1, 2, 3, 4, 5].reduce([Int](), combine: { [$1] + $0 })
// 5, 4, 3, 2, 1