Swift Dictionary filter()

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})

这里,dictionaryDictionary 类的一个对象。


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]
你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战