Swift 3: Dict from only one object in struct in array

Swift 3: Dict from only one object in struct in array

我有一个 struct 看起来像:

struct nameStruct {
    let name: String
    let index: Int
}

我有一个 NSMutableArray,其中包含此 struct

的大约 50 个对象

现在,我用

填充 namesDict 的内容
let namesDict:[String: Any] = ["names" : namesArray]

但是,因为我只需要 index 对象进行排序,所以我只想将 name 属性添加到字典中,如下所示:

let namesDict:[String: Any] = ["names" : namesArray.name]

或者,由于 swift 的性质:

let namesDict:[String: Any] = ["names" : (namesArray as! [nameStruct]).name]

(关注 .name 部分,这在 Swift 中显然不起作用)

现在,我最好的猜测是在循环中创建一个新数组,只添加我的 namesArray 内容的 name - 但如果有办法做到这一点在一行中没有另一个数组 "in between",这真的很好。

您可以使用 map.

let namesDict: [String: Any] = ["names": namesArray.map({ ([=10=] as! nameStruct).name })]