【发布时间】:2016-11-22 03:17:43
【问题描述】:
我有一组Person 的对象:
class Person {
let name:String
let position:Int
}
数组是:
let myArray = [p1,p1,p3]
我想将myArray 映射为[position:name] 的字典,经典的解决方案是:
var myDictionary = [Int:String]()
for person in myArray {
myDictionary[person.position] = person.name
}
Swift 有什么优雅的方法可以通过函数式方法map、flatMap... 或其他现代 Swift 风格来做到这一点
【问题讨论】:
-
游戏有点晚了,但是您想要
[position:name]或[position:[name]]的字典吗?如果您有两个人处于同一位置,则您的字典将只保留循环中遇到的最后一个....我有一个类似的问题,我正在尝试寻找解决方案,但我希望结果像[1: [p1, p3], 2: [p2]] -
它们是一个内置函数。见here。基本上是
Dictionary(uniqueKeysWithValues: array.map{ ($0.key, $0) })
标签: ios arrays swift dictionary