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

问题描述 投票:0回答:1

我有字典

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

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

["key1": [1, 111], "key2": [22, 222]]

不是通过使用forforEach循环

ios swift dictionary
1个回答
4
投票

斯威夫特4

您可以使用mapValues(在Swift 4中引入)和map数组,如下所示

let newDict = dict.mapValues { value in 
    value.map { Int($0)!}
}

请注意,如果数组中的值无法转换为Ints,程序将崩溃。

斯威夫特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)!}) 
})

这也将达到预期的效果。

© www.soinside.com 2019 - 2024. All rights reserved.