2011-02-23 10 views
19

Mam następujący:Ruby przekonwertować tablicę do zagnieżdżonego hasha

value = 42 
array = ["this","is","a","test"] 

jaki sposób można przekonwertować, że aby uzyskać ten

{ "this" => { "is" => { "a" => { "test" => 42 } } } } 

tablica jest zawsze płaska.

Dziękujemy!

+1

Teraz jest to szalony struktury danych ... to zdarzy się jakieś uzasadnienie? – delnan

+2

@delnan "hi.i.am.some.kind.of.path = value", aby zostać scalonym w istniejącym zrzutu mieszania yaml. – Mauricio

Odpowiedz

71

Spróbuj tego:

h = array.reverse.inject(value) { |a, n| { n => a } } 
+3

Wow, to naprawdę zgrabne. –

+0

niesamowite ... naprawdę niesamowite. – Mauricio

+0

Najtrudniejszą częścią tego było zastanowienie się, jak sformułować moje pytanie na SO. "Zagnieżdżony" był punktem zwrotnym;) –

Powiązane problemy