2013-05-14 11 views
8

mam hash, który zawiera numery jako takie:Ruby: Jak konwertować hash w tablicy

{0=>0.07394653730860076, 1=>0.0739598476853163, 2=>0.07398647083461522} 

to musi być konwertowane do tablicy jak:

[[0, 0.07394653730860076], [1, 0.0739598476853163], [2, 0.07398647083461522]] 

Starałem hash. wartości, które mnie dostają:

[0.07398921877505593, 0.07400253683443543, 0.07402917535044515] 

Próbowałem na wiele sposobów, ale właśnie zacząłem uczyć się ruby.

Odpowiedz

15

spróbuj tego:

{0=>0.07394653730860076, 1=>0.0739598476853163, 2=>0.07398647083461522}.to_a 
#=> [[0, 0.07394653730860076], [1, 0.0739598476853163], [2, 0.07398647083461522]] 
+0

Tak, to zrobiłem !! dzięki!! – user2376068

7

Zdecydowanie użyć krzyżyka # metodę to_a, która będzie produkować dokładnie to, czego szukasz.

{0=>0.07394653730860076, 1=>0.0739598476853163, 2=>0.07398647083461522}.to_a 
=> [[0, 0.07394653730860076], [1, 0.0739598476853163], [2, 0.07398647083461522]] 

krzyżyka # wartości daje jedynie wartości każdego elementu w tablicy asocjacyjnej, a krzyżyka # klawisze daje tylko klucze. Na szczęście domyślne zachowanie to_a jest tym, czego szukasz.