While reading the archives, I found out about this cool “idiom”:

hash = Hash[*ary]

which will turn [1,2,3,4] into {1=>2, 3=>4}. Is there anything similar
to do the opposite (i.e., turn {1=>2, 3=>4} into [1,2,3,4] or
[3,4,1,2])? I can only come up with this:

While reading the archives, I found out about this cool “idiom”:

hash = Hash[*ary]

which will turn [1,2,3,4] into {1=>2, 3=>4}. Is there anything similar
to do the opposite (i.e., turn {1=>2, 3=>4} into [1,2,3,4] or
[3,4,1,2])? I can only come up with this:

ary = Hash.to_a.flatten

Well this is something I didn’t know about till I saw Matz mention it in
another thread today:

While reading the archives, I found out about this cool “idiom”:

hash = Hash[*ary]

which will turn [1,2,3,4] into {1=>2, 3=>4}. Is there anything similar
to do the opposite (i.e., turn {1=>2, 3=>4} into [1,2,3,4] or
[3,4,1,2])? I can only come up with this:

ary = Hash.to_a.flatten

You can use inject if you want to save the intermediate array: