将 2 个数组放入一个字典中,同时维护索引
2 arrays into one dictionary while maintaining the indexes
我有两个单独的数组要导入到字典中。顺序非常重要,因为两个数组必须在索引
中匹配
struct MyVariables {
static var users:NSArray!
static var img:NSArray!
}
var data = SearchVC.getData()
MyVariables.users = data.users; //array 1 (key)
MyVariables.img = data.img; //array 2
// Goal is to insert these arrays into a dictionary while maintaing the matching indexes on both arrays
// Dictonary (MyVariables.img, key: MyVariables.users)
字典没有特定的顺序。但是,如果两个数组的长度相同,则很容易将它们一起迭代:
var dictionary = [NSString: AnyObject]()
for var index = 0; index < data.users.count; index++ {
let img = data.img as! NSString
dictionary[img] = data.users[index]
}
或者,按照@robertvojta 的建议,使用zip()
方法:
var dictionary = [NSString: AnyObject]()
for (user, image) in zip(data.users, data.img) {
let img = image as! NSString
dictionary[img] = user
}
swift 中字典中的 key
必须是 hashable
。即,不是 AnyObject
.
假设您可以替换一些未类型化的 Swift 数组,或像这样转换它们:
struct MyVariables {
var users:Array<AnyObject>
var img:Array<String>
}
然后您可以使用首选 Swift 方法遍历 1 个数组并使用索引访问第二个数组:
var dictionary = Dictionary<String, AnyObject>()
for (index, element) in enumerate(MyVariables.img) {
dictionary[element] = MyVariables.users[index]
}
使用for循环遍历数组,根据索引访问键和值各自的数组并将其添加到字典中。它是如此简单,因此您可以使用它来实现您的目标。
希望对您有所帮助!
我有两个单独的数组要导入到字典中。顺序非常重要,因为两个数组必须在索引
中匹配struct MyVariables {
static var users:NSArray!
static var img:NSArray!
}
var data = SearchVC.getData()
MyVariables.users = data.users; //array 1 (key)
MyVariables.img = data.img; //array 2
// Goal is to insert these arrays into a dictionary while maintaing the matching indexes on both arrays
// Dictonary (MyVariables.img, key: MyVariables.users)
字典没有特定的顺序。但是,如果两个数组的长度相同,则很容易将它们一起迭代:
var dictionary = [NSString: AnyObject]()
for var index = 0; index < data.users.count; index++ {
let img = data.img as! NSString
dictionary[img] = data.users[index]
}
或者,按照@robertvojta 的建议,使用zip()
方法:
var dictionary = [NSString: AnyObject]()
for (user, image) in zip(data.users, data.img) {
let img = image as! NSString
dictionary[img] = user
}
swift 中字典中的 key
必须是 hashable
。即,不是 AnyObject
.
假设您可以替换一些未类型化的 Swift 数组,或像这样转换它们:
struct MyVariables {
var users:Array<AnyObject>
var img:Array<String>
}
然后您可以使用首选 Swift 方法遍历 1 个数组并使用索引访问第二个数组:
var dictionary = Dictionary<String, AnyObject>()
for (index, element) in enumerate(MyVariables.img) {
dictionary[element] = MyVariables.users[index]
}
使用for循环遍历数组,根据索引访问键和值各自的数组并将其添加到字典中。它是如此简单,因此您可以使用它来实现您的目标。
希望对您有所帮助!