filter
let nums = [1,2,3,4,5,6]
let result = nums.filter { $0 % 2 == 0 }
print("偶数为 \(result)") //输出内容:偶数为[2,4,6]
//其中$0为依次从nums中取出的元素。{ $0 % 2 == 0 }为筛选闭包,忽略了参数名。也可以用如下完整闭包
let result = nums.filter{ (index) -> Bool in
index % 2 == 0
}
- filter:筛选的功能,接受一个用来筛选的闭包(条件闭包.用来返回一个true或者flase),返回一个数组,根据闭包函数返回的Bool值来过滤值。为true则加入到结果数组中
reduce
let stringArray = ["Objective-C", "Swift", "HTML", "CSS", "JavaScript"]
//第一个参数是初始值
print(stringArray.reduce("aaa", {
return $0 == "" ? $1 : $0 + "、" + $1
}))
aaa、Objective-C、Swift、HTML、CSS、JavaScript
- reduce:接受一个一个原始值和一个闭包表达式.闭包返回值的类型要求要和初始值一样.遍历数组,闭包的返回值又作为参数在下一次循环中闭包参数使用.最终会返回一个最后累加得到的值
网友评论