从数组中的字典数组中获取数据 [英] Getting data from array of dictionaries in an array

查看:103
本文介绍了从数组中的字典数组中获取数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我创建了一个 DictionariesArray:

I have created an Array of Dictionaries:

let tempArray = [["id":"1","Name":"ABC"],["id":"2","Name":"qwe"],["id":"3","Name":"rty"],["id":"4","Name":"uio"]]

现在我只需要创建一个 Name 数组.

Now I have to create an array of Name only.

我所做的是:

var nameArray = [String]()
for dataDict in tempArray {
    nameArray.append(dataDict["Name"]!)
}

但是有没有其他有效的方法可以做到这一点.

But is there any other efficient way of doing this.

推荐答案

你可以使用flatMap(不是map)来解决这个问题,因为flatMap 可以过滤掉 nil 值(当 dict 没有键 "Name" 的值时),即 names 数组将被定义为 [String] 而不是 [String?]:

You can use flatMap (not map) for this, because flatMap can filter out nil values (case when dict doesn't have value for key "Name"), i.e. the names array will be defined as [String] instead of [String?]:

let tempArray = [["id":"1","Name":"ABC"],["id":"2","Name":"qwe"],["id":"3","Name":"rty"],["id":"4","Name":"uio"]]
let names = tempArray.flatMap({ $0["Name"] })
print(names) // ["ABC", "qwe", "rty", "uio"]

这篇关于从数组中的字典数组中获取数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆