0

我正在尝试学习 Ruby,我有以下代码

 a[0]={ :artist => 'Green Day',
                          :name => 'Song1',
                                                   :bitrate => 192 }
 a[1]={ :artist => 'U2', :name => 'Song2' }
 a[2]={:artist => 'Metallica', :name => 'Battery' }

我的问题是,例如,我如何在这样的数组中找到 Metallica 的所有歌曲?谢谢!:)

编辑:好的,另一个新手问题?如何找到标题中包含特定序列的歌曲?

我试过:

a.find { |x| x[:song].include? 'Song' }

但它返回一个错误。

4

3 回答 3

8

你可以使用select方法

a.select {|c| c[:artist] == 'U2'}
于 2012-10-30T21:30:05.380 回答
2
a.select { |song| song[:artist] == 'Metallica' }

对于你的第二个问题

a.select { |song| song[:name].include? 'Song' }
于 2012-10-30T21:31:57.883 回答
-1
Employee.where("artist = ?", "Metallica")

返回一个类似于数组的可链接范围对象。

于 2012-10-30T21:29:34.983 回答