2017-08-01 63 views
-1

我檢索火力回數據作爲詞典的詞典:如何將數據字典轉換爲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} 

我基本上試圖讓鑰匙回來,所以它只是咖啡廳的名字。謝謝!

+2

如果您使用的是字典數組的鍵,請使用'keys'屬性,如下所示:'Array(a.keys)'。要獲得第一個,它是'Array(a.keys).first' – paulvs

+1

[數組從字典鍵在swift]可能重複(https://stackoverflow.com/questions/26386093/array-from-dictionary-keys-在-SWIFT) – Kymer

回答

0

關於使用地圖,我猜this page是有幫助和視覺。

let names = data.map { return $0.key } 
print(names) // prints ["café-veritas", "cafe-myriade"] 
0

下面是一個例子,你如何能夠實現它:

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"] 
0

打電話給你造成的字典 「字典」,你可以做這樣的事情:

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"] 
相關問題