我有以下陣列轉換陣列嵌套散列紅寶石
['a', 'b', 'c']
如何將它轉換成散列這樣的怒吼:
{'a' => { position: index of array element a }, 'b' ...., 'c' ... }
問候 格奧爾基。
我有以下陣列轉換陣列嵌套散列紅寶石
['a', 'b', 'c']
如何將它轉換成散列這樣的怒吼:
{'a' => { position: index of array element a }, 'b' ...., 'c' ... }
問候 格奧爾基。
首先,你可以創建類似下面的使用方法Array#map
和Enumerator#with_index
數組:
ary = ['a', 'b', 'c']
temporary = ary.map.with_index { |e, i| [e, { position: i }] }
# => [["a", {:position=>0}], ["b", {:position=>1}], ["c", {:position=>2}]]
然後你就可以得到的數組轉換使用可用的Array#to_h
方法,因爲紅寶石2.1散列:
temporary.to_h
# => {"a"=>{:position=>0}, "b"=>{:position=>1}, "c"=>{:position=>2}}
對於舊版本的Ruby,Hash.[]
方法將執行:
Hash[temporary]
# => {"a"=>{:position=>0}, "b"=>{:position=>1}, "c"=>{:position=>2}}
['a', 'b', 'c'].each_with_index.reduce({}) do |s, (e, i)|
s[e] = { position: i }
s
end
當您詢問代碼時,我們希望您展示您的嘗試來解決問題。如果沒有這樣做,看起來你只是在爲別人寫信給你。 –
謝謝你的批評。將來我會加入解決問題的嘗試。 – Georgi
@Georgi - 感謝您積極響應 –