2016-12-27 64 views
-5

我有一個數組:如何搜索詞典中值並替換它以一個數組

var placeID = ["55667","44568"] 

和字典:

var placeDict = ["USA" : "55667", 
      "Canada" : "44568" 
      ] 

我想替換placeID從placeDict國名的對象。

所以問題是:如果placeID的值與placeDict中的值匹配,我希望它需要替換爲國家名稱。

任何想法如何做到這一點?

+1

您有什麼問題?試圖做什麼時你掙扎着什麼?請解釋。 – Moritz

+0

不知道如何替換數組中的匹配值。如果數字匹配我想用國家名替換它 –

+2

如果你有*不知道*,那麼我建議你閱讀寫得很好的[Swift語言指南](https://developer.apple.com/library/content/documentation /Swift/Conceptual/Swift_Programming_Language/TheBasics.html#//apple_ref/doc/uid/TP40014097-CH5-ID309),您將在其中找到關於序列,集合以及如何操作和*過濾*的所有解釋。 – Moritz

回答

0

這是非常基本的,你想要做的事情。只需map包含地點和ID的字典,並返回國家的名稱,當它匹配。 foundPlaceIDS應該包含你需要的結果。

var placeIDs = ["55667","44568"] 
var placeDict = ["USA" : "55667", 
       "Canada" : "44568"] 

var foundPlaceIDs = placeDict.flatMap { (placeName, placeID) -> String? in 
    return placeID.contains(placeID) ? placeName : nil 
} 

print(foundPlaceIDs) // Prints USA, Canada 
0

嘗試下面我的代碼,這很容易讓你明白:

var placeID = ["55667","44568"] 
var placeDict = ["USA" : "55667", 
       "Canada" : "44568"] 

for (key, value) in placeDict { 
    for i in 0 ..< placeID.count { 
     if placeID[i] == value { 
      placeID[i] = key 
     } 
    } 
} 

print(placeID) // -> ["USA", "Canada"] 
相關問題