Ruby 1.9,如果键包含特定对象,则返回数组

时间:2011-12-14 22:03:07

标签: ruby multidimensional-array

代码:

@albums = @genres.each_with_index { |item,key|
  if item.keys.include?('Albums')
    break
  end
 }

这应该返回Albums数组(@genres对象是一个巨大的多维JSON响应)

我认为这是我在生病时尝试编码所得到的......或者只是简单地做错了......无论哪种方式,任何帮助都非常感谢!

1 个答案:

答案 0 :(得分:1)

我认为您需要#detect(或其同义词#find):

@albums = @genres.detect { |item| item.key?('Albums') }['Albums']

编辑|另请注意,如果要中断并返回特定值,则可以像break一样为return提供参数。