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 })]
我有一个 struct
看起来像:
struct nameStruct {
let name: String
let index: Int
}
我有一个 NSMutableArray
,其中包含此 struct
现在,我用
填充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 })]