【问题标题】:How to search values in Dictionary and replace it to an array如何在字典中搜索值并将其替换为数组
【发布时间】:2017-05-11 20:25:27
【问题描述】:

我有一个数组:

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

还有字典:

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

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

所以问题是:如果 placeID 的值与 placeDict 中的值匹配,我希望将其替换为国家名称。

任何想法如何做到这一点?

【问题讨论】:

  • 您的问题是什么?当你尝试做这件事时,你在挣扎什么?请解释一下。
  • 不知道如何替换数组中的匹配值。如果数字匹配,我想用国家名称替换它
  • 如果你有不知道,那么我建议你阅读写得很好的Swift language guide,在那里你会找到关于序列、集合以及如何操作和过滤他们。

标签: ios arrays swift mapping nsdictionary


【解决方案1】:

这是您想做的非常基本的事情。只需 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

【讨论】:

    【解决方案2】:

    试试我下面的代码,这对你来说很容易理解:

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

    【讨论】:

      猜你喜欢
      • 2012-07-08
      • 2021-07-21
      • 1970-01-01
      • 2010-11-19
      • 2016-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-19
      相关资源
      最近更新 更多