gar*_*ley 3 arrays dictionary swift
我正在寻找一种结合字典的优雅方法。
Input: [[a: foo], [b: bar], [c: baz]]
Output: [a: foo, b: bar, c: baz]
Run Code Online (Sandbox Code Playgroud)
实现此目标的最佳方法是什么?
您可以使用reduce,但是必须定义一个“ combine”方法,该方法将为您提供来自2个单独词典的组合词典。
所以你可以做这样的事情
let inputArray = [["a": "foo"], ["b": "bar"], ["c": "baz"], ["c": "bazx"]]
let flat = inputArray.reduce([:]) { $0 + $1 }
Run Code Online (Sandbox Code Playgroud)
如果您在字典上重载了“ +”
func + <K, V>(lhs: [K : V], rhs: [K : V]) -> [K : V] {
var combined = lhs
for (k, v) in rhs {
combined[k] = v
}
return combined
}
Run Code Online (Sandbox Code Playgroud)
let inputArray = [["a": "foo"], ["b": "bar"], ["c": "baz"]].reduce([], +)
var result:[String:String] = [:]
for item in inputArray {
result.updateValue(item.1, forKey: item.0)
}
println(result.description)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1788 次 |
| 最近记录: |