map
- 对于原始集合里的每一个元素,以一个变换后的元素替换之形成一个新的集合
filter
- 对于原始集合里的每一个元素,通过判定来将其丢弃或者放进新的集合
reduce
- 对于原始集合里的每一个元素,作用于当前累积的结果上
flatMap
let results = [[1, 2, 3],[4, 5, 6],[7, 8, 9]]
let allResults = results.flatMap{ $0.map{ $0 * 10 } }
let passMarks = results.flatMap{ $0.filter{ $0 > 5 } }
print(allResults)
print(passMarks)
执行结果如下:
[10, 20, 30, 40, 50, 60, 70, 80, 90]
[6, 7, 8, 9]
compactMap
let keys: [String?] = ["zhangsan", nil, "lisi", nil, "wangwu"]
let validNames = keys.compactMap{ $0 }
print(validNames)
let counts = keys.compactMap{ $0?.count }
print(counts)
执行结果如下:
["zhangsan", "lisi", "wangwu"]
[8, 4, 6]
网友评论