2011-12-14 35 views
0

代码:红宝石1.9,返回数组,如果键包括特定对象

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

这应该被返回专辑阵列(该@genres对象是一个巨大的多维JSON响应)

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

回答

1

我想你想#detect(或它的同义词#find):

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

编辑|还请注意,如果您想中断并返回特定值,则可以提供break的参数,就像您可以使用return一样。

+0

不应该是项目['专辑']?此外,使用散列检测工作是否正确,因为映射不与它们,只有数组。我的观点是要小心你正在使用的枚举方法。 – 2011-12-15 05:17:48