从Swift中的Dictionary中获取特定键的所有值

Ram*_*j T 4 arrays dictionary ios swift

我有一个这样的字典数组.

let arr = [["EmpName"   :   "Alex",     "Designation"   :   "Jr. Developer"],
           ["EmpName"   :   "Bob",     "Designation"   :   "Sr. Developer"],
           ["EmpName"   :   "Claire",  "Designation"   :   "Jr. Developer"],
           ["EmpName"   :   "David",   "Designation"   :   "Project Manager"]]
Run Code Online (Sandbox Code Playgroud)

现在我想从中获取EmpName对象.我如何在swift中执行此操作?我基本上想要一个具有以下值的数组.

["Alex", "Bob", "Claire", "David"]
Run Code Online (Sandbox Code Playgroud)

这就是我现在所做的.但我想知道我是否可以通过使用filtermap...

var employees = [String]()
    for empRecord in arr {
        employees.append(empRecord["EmpName"]!)
    }
Run Code Online (Sandbox Code Playgroud)

aya*_*aio 6

一种简单的方法是使用flatMap:

let employees = arr.flatMap { $0["EmpName"] }
Run Code Online (Sandbox Code Playgroud)

结果:

["亚历克斯","鲍勃","克莱尔","大卫"]

flatMap在Swift中map,它也可以安全地展开选项,这是我们需要的,因为Swift词典总是返回Optionals.