如何在Dictionary中搜索值并将其替换为数组

时间:2016-12-27 14:31:28

标签: ios arrays swift mapping nsdictionary

我有一个数组:

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

字典:

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

我想用placeDict中的国家/地区名替换placeID对象。

所以问题是:如果placeID的值与placeDict中的值匹配,我希望它需要替换为国家/地区名称。

任何想法怎么做?

2 个答案:

答案 0 :(得分:0)

这是你想做的非常基础的事情。在包含地点和ID的字典上只需map,并在匹配时返回国家/地区的名称。 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

答案 1 :(得分: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"]