Swift 3:将String类型的字典转换为Int

时间:2018-03-03 07:31:40

标签: ios swift dictionary

我'有字典

var dict: [String: [String]] = ["key1": ["1", "111"], "key2": ["22", "222"]]

如何使用地图功能将其转换为[String: [Int]]

["key1": [1, 111], "key2": [22, 222]]
使用forforEach循环

1 个答案:

答案 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)!}) 
})

也将达到预期的效果。