Swift数组的filter()方法
filter()
方法返回满足提供条件的数组中的所有元素。
示例
var numbers = [2, 3, 6, 9]
// 返回所有大于5的元素
var result = numbers.filter({ $0 > 5})
print(result)
// 输出: [6, 9]
filter()语法
filter()
方法的语法如下:
array.filter(condition)
这里,array
是Array
类的对象。
filter()参数
filter()
方法接受一个参数:
- condition - 一个接受条件并返回Bool值的闭包。
filter()返回值
- 返回数组中满足提供条件的所有元素
示例1:Swift数组filter()
var languages = ["Swedish", "Nepali", "Slovene", "Norwegian"]
// 返回所有以"N"开头的元素
var result = languages.filter( { $0.hasPrefix("N") } )
print(result)
输出
["Nepal", "Norwegian"]
在上面的程序中,请注意闭包定义,
{ $0.hasPrefix("N") }
这是一个简写的闭包,用于检查数组中的所有元素是否以"N"开头。
$0
是指代传递到闭包中的第一个参数的快捷方式。
闭包根 据条件返回一个Bool
值。如果条件为
true
- 保留数组值false
- 丢弃/省略数组值
最后,以"N"开头的所有元素都存储在result
变量中。
示例2:从数组中仅返回偶数
var numbers = [2, 4, 5, 7, 8, 9]
// 检查所有元素是否为偶数
var result = numbers.filter({ $0 % 2 == 0 })
print(result)
输出
[2, 4, 8]