2015-10-07 87 views
-1

我有表示array(例如)一週中的天數:使用陣列方法映射到聚集dictionnaries的陣列與陣列

["Monday", "Tuesday", "Wed", "Thursday", "Friday", "Sat", "Sunday"] 

我有第一陣列的相同尺寸的array of dictionaries中,每個Dictionary僅包含一個key/value

[["temp": 11], ["temp": 12], ["temp": 13], ["temp": 14], ["temp": 15], ["temp": 16], ["temp": 17]] 

每個溫度對應於第一陣列中的索引相同的日子。

有沒有一種方法,使用陣列方法map(transform: (Self.Generator.Element) throws -> T),我的字典的數組轉換成以下字典:

["Monday": 11, "Tuesday": 12, "Wed": 13, "Thursday": 14, "Friday": 15, "Sat": 16, "Sunday": 17] 
+3

您沒有字典任何地方。第二個數據模型也是一個數組。它的一個字符串數組''temp:11「'。字典不能有相同的密鑰。請檢查你的模型和問題。 – Abhinav

+0

再次檢查,正如我所說,字典必須具有唯一的密鑰。試着把你的模型放在斯威夫特操場上,你必須得到錯誤。 – Abhinav

+0

好吧,現在,第二個是字典陣列。那是你要的嗎?爲什麼你只需要一個像11,12,13這樣的數字的數組,然後合併你的日期數組和數組來創建一個字典?不知道你想達到什麼想法。請再多點光! – Abhinav

回答

1

好了,你可以從mapArray而不是Dictionary返回。這是另一種方法:

var test1 = [["temp": 11], ["temp": 12], ["temp": 13], ["temp": 14], ["temp": 15], ["temp": 16], ["temp": 17]] 
var myArray = ["Monday", "Tuesday", "Wed", "Thursday", "Friday", "Sat", "Sunday"] 
var finalArray = [Dictionary<String,Int?>]() 

for day in myArray { 
    let itemIndex = myArray.indexOf(day) 
    let itemDict = test1[itemIndex!] 
    let value = itemDict["temp"] as Int? 
    let changedDict = [day : value] 
    finalArray.append(changedDict) 
} 
+0

是的,我想過迭代數組,但想知道是否可以用map來完成。謝謝。 – Nico