對於電子商務應用程序,我試圖將選項的散列(每個選項都包含一系列選項)轉換爲表示這些選項組合的散列數組。例如:紅寶石散列組合
# Input:
{ :color => [ "blue", "grey" ],
:size => [ "s", "m", "l" ] }
# Output:
[ { :color => "blue", :size => "s" },
{ :color => "blue", :size => "m" },
{ :color => "blue", :size => "m" },
{ :color => "grey", :size => "s" },
{ :color => "grey", :size => "m" },
{ :color => "grey", :size => "m" } ]
輸入可能有它內部的附加選項與爲每一個選擇的人數不詳,但僅會被嵌套1級深。任何
我認爲你的意思是'shift'而不是'unshift'(如果沒有給出任何參數,它不會做任何事情)。而在Ruby 2+中,FWIW可以用'map(&:to_h)',ergo:'ary.shift.product(* ary).map(&:to_h)'替換最後一個'map'。 – 2014-09-03 21:21:06
它看起來像這個解決方案與'shift'工作 – dvanderb 2014-09-03 21:23:02
@Jordan - 當然,我的意思是轉變,這是晚了。 :P感謝您指出。 – BroiSatse 2014-09-03 21:23:59