我正在使用此flatmap函数返回字典,但它正在返回[(key: String, value: String)]
。 [(key: String, value: String)]
和字典有什么区别?这是我正在使用的代码。什么是最好的方法来做到这一点。 totalResponseArray
是Array<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)"
}
编辑: 事实证明,循环是最好的方式,也是唯一的方法。我不是试图映射函数。
答案 0 :(得分:3)
[(key: String, value: String)]
不是Dictionary
,而是Array
类型(key: String, value: String)
的元组。