2012-12-08 60 views
0

有沒有更簡單的方法來做到這一點?如何將散列數組加到ruby中的數組

我試圖做的,是簡單地增加內部的每個listmyarray

myarray = [] 
list = [{list: [{item: 'item1'},{item: 'item2'}]}, {list: [{item: 'item3'},{item: 'item4'}]}, {list: [{item: 'item5'},{item: 'item6'}]}] 

list.each do |list| 
    myarray = myarray + list 
end 
+1

從你的文章中不清楚你想要的結果是什麼,因爲你沒有任何「物品哈希」。你有一個'list'作爲關鍵字的散列數組,但我不認爲你是這個意思。你是說你想要一個由「item1,item2,item3等組成的簡單數組」。 ? –

+0

您當前的解決方案有何問題?你的預期產出是多少? –

+0

@PhilipHallstrom是的,我確實需要一個包含所有項哈希的數組:item1,item2,item3,item4等。 – Martin

回答

1

這個item哈希:

((list.map {|x| x[:list]}).flatten).map{|x| x[:item] if x != nil} 

產生這樣的:

["item1", "item2", "item3", "item4", nil] 

(在零是因爲你最後的元素是

{item: [{item: 'item5'},{item: 'item6'}]} 

我假設你的意思列表:就像其他人一樣。

+0

對,剛剛更新了錯字。 – Martin