Swift 3:Dict只来自数组中struct的一个对象

时间:2017-09-05 21:17:10

标签: swift nsmutablearray

我有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中不起作用)

现在,我最好的猜测是在循环中创建一个新数组,只添加name内容的namesArray - 但如果有办法在一个没有另一个数组的“中间”,这将是非常好的。

1 个答案:

答案 0 :(得分:1)

您可以使用map

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