如何将数据字典转换为Swift数组?
问题描述:
我检索火力回数据作为词典的词典:如何将数据字典转换为Swift数组?
guard let data = snapshot.value as? [String: [String:Int]] else {
而且我想取回第一密钥,以如果它回来作为这样的结果(?):
"café-veritas": ["AmpleSeating": 1, "Organic": 1, "Quiet": 1, "AmpleOutletAccess": 1, "Couch": 1, "Loud": 1, "GlutenFree": 1, "FreeWifi": 1],
"cafe-myriade": ["Terasse": 1, "LaptopFriendly": 1, "Quiet": 1, "FreeWifi": 1, "FastWifi ": 1, "GlutenFree": 1],
我试图将咖啡馆的名称“café-veritas”和“cafe-myriade”放入数组中。我被告知使用地图功能,但我不知道如何。会是这样吗?
let array = data.map { yelp IDs in yelpIDs}
我基本上试图让钥匙回来,所以它只是咖啡厅的名字。谢谢!
答
关于使用地图,我猜this page是有帮助和视觉。
let names = data.map { return $0.key }
print(names) // prints ["café-veritas", "cafe-myriade"]
答
下面是一个例子,你如何能够实现它:
var data : [String: [String:Int]]
data = ["first": ["value1": 1], "second": ["value2": 1]]
var array = data.map { $0.value }
var arr = array.flatMap { $0.keys.first }
print(arr)
会打印:
["value2", "value1"]
答
打电话给你造成的字典 “字典”,你可以做这样的事情:
let dictionaries = [["café-veritas": ["AmpleSeating": 1, "Organic": 1, "Quiet": 1, "AmpleOutletAccess": 1, "Couch": 1, "Loud": 1, "GlutenFree": 1, "FreeWifi": 1],"cafe-myriade": ["Terasse": 1, "LaptopFriendly": 1, "Quiet": 1, "FreeWifi": 1, "FastWifi ": 1, "GlutenFree": 1]]]
let result = dictionaries.flatMap({ $0.keys.map({ $0 }) })
// returns ["café-veritas", "cafe-myriade"]
如果您使用的是字典数组的键,请使用'keys'属性,如下所示:'Array(a.keys)'。要获得第一个,它是'Array(a.keys).first' – paulvs
[数组从字典键在swift]可能重复(https://stackoverflow.com/questions/26386093/array-from-dictionary-keys-在-SWIFT) – Kymer