2011-12-14 36 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