Swift 字典 filter() 方法
filter()
方法返回满足提供条件的字典中的所有键-值对。
示例
var marks = ["Sabby": 89, "Dabby": 45, "Cathy": 74]
// 返回所有值大于50的键-值对
var result = marks.filter({ $0.value > 50})
print(result)
// 输出: ["Cathy": 74, "Sabby": 89]
filter() 语法
filter()
方法的语法如下:
dictionary.filter({条件})
这里,dictionary
是 Dictionary
类的对象。
filter() 参数
filter()
方法接受一个参数:
- 条件 - 一个接受条件并返回 Bool 值的闭包。
filter() 返回值
- 返回一个新的字典,其中包含满足提供条件的所有来自
dictionary
的元素。
示例1:Swift 字典过滤(filter())
var age = ["Kyle": 7, "Eric": 9, "Kenny": 10]
// 返回所有值以 "K" 开头的键-值对
var result = age.filter( { $0.key.hasPrefix("K") } )
print(result)
输出
["Nepal", "Norwegian"]
在上面的程序中,请注意闭包的定义:
{ $0.key.hasPrefix("K") }
这是一个检查字典中所有键是否以 "K" 为前缀的缩写闭包。
$0
是指代传递到闭包中的第一个参数的简写。
该闭包根据条件返回一个 Bool
值。如果条件是
true
- 字典的键-值对被保留false
- 字典的键-值对被删除/省略
最后,所有以 "K" 开头的元素都存储在 result
变量中。
示例2:仅返回字典中的偶数值
var numbers = ["1st": 2, "2nd": 7, "3rd": 4, "4th": 5]
// 检查所有值是否为偶数
var result = numbers.filter({ $0.value % 2 == 0 })
print(result)
输出
["1st": 2, "3rd": 4]