[(key:String,value:String)]和[String:String]字典之间的区别

时间:2017-06-24 16:17:29

标签: swift

我正在使用此flatmap函数返回字典,但它正在返回[(key: String, value: String)][(key: String, value: String)]和字典有什么区别?这是我正在使用的代码。什么是最好的方法来做到这一点。 totalResponseArrayArray<Duplet<Product, imageArray>>类型的自定义类。

let sizeDict  = totalResponseArray.flatMap { (obj) -> [String:String] in
        var storedItem = [String:String]()
        storedItem["\(obj.one.productID)"] = "\(obj.one.size)"
        return storedItem
    }

我能想到的另一种方法是使用循环,但我觉得有一种更清洁的方法。

我正在尝试将flatmap函数应用于数组而不是字典。 flatmap函数的结果应该是[String:String]的字典。

这是我想要获得的结果。有更好或更清洁的方式吗?我发现上面的代码没有意义得到与下面的代码相同的结果。

var storedItem = [String:String]()

    for eachItem in totalResponseArray{
        storedItem["\(eachItem.one.productID)"] = "\(eachItem.one.color)"
    }

编辑: 事实证明,循环是最好的方式,也是唯一的方法。我不是试图映射函数。

1 个答案:

答案 0 :(得分:3)

[(key: String, value: String)]不是Dictionary,而是Array类型(key: String, value: String)的元组。