2016-12-27 26 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"] 
相关问题