1

特定のアルバムのアーティストを見つけるために、 Spotify APIの rails gem を使用しようとしています。アルバムの名前を次のように取得することから始めます。

album_results = RSpotify::Album.search("The Eminem Show")

そのアルバムのアーティストを見つけるために、上記の変数に次のメソッドを発行しました。

album_results.artists

これは、必要のない大量のデータを返します。私が欲しいのはアーティストの名前だけです。次のようにして、これを部分的に達成できました。

album_results.first.artists.first.name
=> "Eminem"

私がやりたいことは、すべてのアルバムの結果に対して利用可能なすべてのアーティストの名前を返すことです。メソッドを使用してみましselectたが、もう一度、必要なデータが多すぎます。

album_results.select {|album| album.artists}

これを達成するための最良のアプローチは何ですか?

4

1 に答える 1

0

ここでselectを使用すると、 を持つすべてのレコードが返されartistsます。

collectまたはのいずれかを使用する必要がありますmap

my_artists = album_results.flat_map{ |album| 
  album.artists.collect{|artist| artist.name}
}

編集

デフォルトで平坦化された配列を返すflat_mapを使用します。

collectとを使用するよりも効率的flatten!

于 2014-12-02T04:34:09.130 に答える