首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何附加到[[String:[String]] = [[:]]而不是[String:[String]]= [:]?

如何附加到[[String:[String]] = [[:]]而不是[String:[String]]= [:]?
EN

Stack Overflow用户
提问于 2020-04-10 01:33:26
回答 1查看 33关注 0票数 1

我从Firestore数据库获得数组列表,并将其附加到以下变量:

代码语言:javascript
复制
var productTags : [String : [String]] = [:]

这是我获取数据并将其附加到productTags变量的代码:

代码语言:javascript
复制
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)
                            }

                        }
                    }

                }
            }
        }

这是非常好的工作,并给我以下结果:

代码语言:javascript
复制
productTags = [ product1 : [tag1, tag2, tag3, tag4],
                product2 : [tag1, tag2, tag3, tag4, tag 5], 
                product3 : [tag1, tag2, tag3]
              ] 

但是,我需要将字典转换为数组,以便结果如下所示:

代码语言:javascript
复制
productTags = [ [product1 : [tag1, tag2, tag3, tag4]],
                [product2 : [tag1, tag2, tag3, tag4, tag 5]], 
                [product3 : [tag1, tag2, tag3]]
              ] 

所以我的变量应该是这样的:

代码语言:javascript
复制
var productTagsArray : [[String : [String]]] = [[:]]

如何更改代码,以便将其添加到数组中而不是字典中?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-10 02:42:33

我建议在完成之后将字典转换为数组:

代码语言:javascript
复制
let productTagsArray = productTags.map { [$0: $1] }

此外,您还可以使用字典查找的default版本来更改以下内容:

代码语言:javascript
复制
if self.productTags[key] == nil {
    self.productTags[key] = []
    self.productTags[key]?.append(tag)
} else {
    self.productTags[key]?.append(tag)
}

这方面:

代码语言:javascript
复制
self.productTags[key, default: []].append(tag)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61132769

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档