filter()
方法会从字典中返回所有满足指定条件的键值对。
示例
var marks = ["Sabby": 89, "Dabby": 45, "Cathy": 74]
// return all the key-value pair with value greater than 50
var result = marks.filter({ $0.value > 50})
print(result)
// Output: ["Cathy": 74, "Sabby": 89]
filter() 语法
filter()
方法的语法是
dictionary.filter({condition})
这里,dictionary 是 Dictionary
类的一个对象。
filter() 参数
filter()
方法接受一个参数:
- condition - 一个闭包,接受一个条件并返回一个 Bool 值。
filter() 返回值
- 返回一个新字典,其中包含 dictionary 中所有满足指定条件的元素。
示例 1: Swift 字典 filter()
var age = ["Kyle": 7, "Eric": 9, "Kenny": 10]
// return all key-value pairs with value that start with "K"
var result = age.filter( { $0.key.hasPrefix("K") } )
print(result)
输出
["Nepal", "Norwegian"]
在上面的程序中,请注意闭包的定义:
{ $0.key.hasPrefix("K") }
这是一个简写闭包,用于检查字典中的所有键是否以 "K"
开头。
$0
是指向传递到闭包的第一个参数的快捷方式。
闭包根据条件返回一个 Bool
值。如果条件为
true
- 则保留该字典键值对。false
- 则删除/忽略该字典键值对。
最后,所有以 "N"
开头的元素都存储在 result 变量中。
示例 2: 从字典中仅返回偶数值
var numbers = ["1st": 2, "2nd": 7, "3rd": 4, "4th": 5]
// check if all values are even numbers or not
var result = numbers.filter({ $0.value % 2 == 0 })
print(result)
输出
["1st": 2, "3rd": 4]