2017-02-03 25 views
2

私は現在、カスタムオブジェクトの配列持ちカスタムオブジェクトの配列を文字列の配列に変換するにはどうすればよいですか?

[GenrePosters]そのように定義され

:それはこのようになりますコンソールに出力

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 
    } 

[MyMovieGuide.GenrePosters(ポスター: "/e1mjopzAS2KNsvpbpahQ1a6SkSn.jpg")、MyMovieGuide.GenrePosters(ポスター: "/jjBgi2r5cRt36xF6iNUEhzscEcb.jpg")、MyMovieGuide.GenrePosters(ポスター: "/tIKFBxBZhSXpIITiiB5Ws8VGXjt.jpg")]

私がしようとしています

[ "/e1mjopzAS2KNsvpbpahQ1a6SkSn.jpg" "/jjBgi2r5cRt36xF6iNUEhzscEcb.jpg" "/tIKFBxBZhSXpIITiiB5Ws8VGXjt.jpg"]

:このようなだけのポスター値と文字列の配列にGenrePostersの配列を変換します

ご協力いただければ幸いです!

あなたはこの使用 map(_:)方法行うことができるはず
+1

が重複する可能性を28393334 /オブジェクト配列からプロパティ値の配列を取得する) – Hamish

答えて

4

:[オブジェクト配列のプロパティ値の配列を取得します](http://stackoverflow.com/questions/の

let posters = posterList.map {$0.poster} 
+0

'let posters = posterList.map {$ 0.poster}'はどうですか?それは 'gp in gp.poster'とは違いますか? – rmaddy

+0

@rmaddyそれはさらに良いです、ありがとう! – dasblinkenlight

0
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"] 
+0

変換の結果はオプションではないので、 'flatMap(_ :)'はここでは不要です。代わりに 'map(_ :)'を使うだけです。 – Hamish

関連する問題