【发布时间】:2020-07-22 18:12:10
【问题描述】:
我正在从 Firestore 数据库中获取数组列表并将其附加到以下变量:
var productTags : [String : [String]] = [:]
这是我获取数据并将其附加到productTags 变量的代码:
db.collection(DatabaseRef.searchTags).document(DatabaseRef.productTags).getDocument { snapshot, error in
guard error == nil, let snapshot = snapshot else {
return
}
let data = snapshot.data()!
for (key, _) in data {
let productTags = data["\(key)"] as? [Any]
if let maxIndex = productTags?.count {
for index in 0..<maxIndex {
if let tag = productTags![index] as? String, tag != "" {
if self.productTags[key] == nil {
self.productTags[key] = []
self.productTags[key]?.append(tag)
} else {
self.productTags[key]?.append(tag)
}
}
}
}
}
}
这工作得很好,并给了我以下结果:
productTags = [ product1 : [tag1, tag2, tag3, tag4],
product2 : [tag1, tag2, tag3, tag4, tag 5],
product3 : [tag1, tag2, tag3]
]
但是,我需要把字典变成一个数组,这样结果就会像这样:
productTags = [ [product1 : [tag1, tag2, tag3, tag4]],
[product2 : [tag1, tag2, tag3, tag4, tag 5]],
[product3 : [tag1, tag2, tag3]]
]
所以我的变量应该是这样的:
var productTagsArray : [[String : [String]]] = [[:]]
如何更改我的代码,以便将其附加到数组而不是字典中?
【问题讨论】:
标签: arrays swift dictionary arraylist append