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.

您需要使用collectmap

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

编辑

使用flat_map,它默认返回一个扁平化的数组。

比使用collect和更有效flatten!

于 2014-12-02T04:34:09.130 回答