我有键数组和对象数组,我想创建一个字典,键数组中索引 Y 处的每个键都引用对象数组中相同索引 Y 处的对象,即我想编写这样的代码,但在 Swift 2 中:
NSMutableDictionary *dictionary = [NSMutableDictionary dictionaryWithObjects:ObjectsArray forKeys:KeysArray];
最佳答案
let keys = [1,2,3,4]
let values = [10, 20, 30, 40]
assert(keys.count == values.count)
var dict:[Int:Int] = [:]
keys.enumerate().forEach { (i) -> () in
dict[i.element] = values[i.index]
}
print(dict) // [2: 20, 3: 30, 1: 10, 4: 40]
或更实用和通用的方法
func foo<T:Hashable,U>(keys: Array<T>, values: Array<U>)->[T:U]? {
guard keys.count == values.count else { return nil }
var dict:[T:U] = [:]
keys.enumerate().forEach { (i) -> () in
dict[i.element] = values[i.index]
}
return dict
}
let d = foo(["a","b"],values:[1,2]) // ["b": 2, "a": 1]
let dn = foo(["a","b"],values:[1,2,3]) // nil
关于ios - 在swift 2中从对象和键数组创建字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35694542/