我'有字典
var dict: [String: [String]] = ["key1": ["1", "111"], "key2": ["22", "222"]]
如何使用地图功能将其转换为[String: [Int]]
["key1": [1, 111], "key2": [22, 222]]
使用for
或forEach
循环 不
答案 0 :(得分:4)
Swift 4
您可以将mapValues
(在Swift 4中引入)与数组map
一起使用,如下所示
let newDict = dict.mapValues { value in
value.map { Int($0)!}
}
请注意,如果数组中的值无法转换为Int
,程序将会崩溃。
Swift 3
然而,在Swift 3中,没有mapValues
。幸运的是,使用此扩展程序(来源:https://stackoverflow.com/a/24219069):
extension Dictionary {
init(_ pairs: [Element]) {
self.init()
for (k, v) in pairs {
self[k] = v
}
}
}
你可以写
let newDict = Dictionary(dict.map { (key, value) in
(key, value.map{Int($0)!})
})
也将达到预期的效果。