Arrays 如何将自定义对象数组转换为字符串数组?

Arrays 如何将自定义对象数组转换为字符串数组?,arrays,swift,Arrays,Swift,我目前有一个自定义对象数组 [基因报告员] 定义如下: public struct GenrePosters: Decodable, Equatable{ public let poster : String public init? (json: JSON) { guard let poster: String = "poster_path" <~~ json else {return nil} self.poster = poster }

我目前有一个自定义对象数组

[基因报告员]

定义如下:

public struct GenrePosters: Decodable, Equatable{

  public let poster : String

  public init? (json: JSON) {

    guard let poster: String = "poster_path" <~~ json
      else {return nil}
    self.poster = poster
  }

  public static func ==(lhs: GenrePosters, rhs: GenrePosters) -> Bool {
    return lhs.poster == rhs.poster
  }
公共结构genreposter:可解码、可均衡{
公共租赁海报:String
公共init?(json:json){
门卫海报:String=“poster\u path”Bool{
返回左侧海报==右侧海报
}
当打印到console时,它如下所示:

[MyMovieGuide.GenrePosters(海报: “/e1mjopzAS2KNsvpbpahQ1a6SkSn.jpg”),MyMovieGuide.GenrePosters(海报: “/jjBgi2r5cRt36xF6iNUEhzscEcb.jpg”),MyMovieGuide.GenrePosters(海报: “/tikfbxbzhsxpiitib5ws8vgxjt.jpg”)]

我正在尝试将genreposter数组转换为一个字符串数组,其中仅包含如下海报值:

[ “/e1mjopzAS2KNsvpbpahQ1a6SkSn.jpg” “/jjBgi2r5cRt36xF6iNUEhzscEcb.jpg” “/tikfbxbzhsxpiitib5ws8vgxjt.jpg”]


任何帮助都将不胜感激!

您应该能够使用以下方法完成此操作:

公共结构genreposter:可解码、可均衡{
公共租赁海报:String
公共init?(json:json){
门卫海报:String=“poster\u path”Bool{
返回左侧海报==右侧海报
}
}
让genrePostersArray=[GenrePosters(海报:“一”)、GenrePosters(海报:“二”)、GenrePosters(海报:“三”)]
让genrePostersStringArray=genrePostersArray.flatMap{$0.poster}
打印(genrePostersStringArray)/[“一”、“二”、“三”]

关于
let posterList=posterList.map{$0.poster}
?这与gp.poster中的
gp
不同吗?请注意,
flatMap(:)
在这里是不必要的,因为转换的结果是非可选的–您可以简单地使用
map(:)
。可能的重复
let posters = posterList.map {$0.poster}
public struct GenrePosters: Decodable, Equatable{

    public let poster : String

    public init? (json: JSON) {

        guard let poster: String = "poster_path" <~~ json
            else {return nil}
        self.poster = poster
    }

    public static func ==(lhs: GenrePosters, rhs: GenrePosters) -> Bool {
        return lhs.poster == rhs.poster
    }
}

let genrePostersArray = [GenrePosters(poster: "one"), GenrePosters(poster: "two"), GenrePosters(poster: "three")]
let genrePostersStringArray = genrePostersArray.flatMap { $0.poster }
print(genrePostersStringArray) // ["one", "two", "three"]