10

我有一个包含数字的哈希:

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

它需要转换成一个数组,如:

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

我尝试了我的 hash.values 这让我:

[0.07398921877505593, 0.07400253683443543, 0.07402917535044515]

我尝试了多种方法,但我刚刚开始学习 ruby​​。

4

2 回答 2

20

试试这个:

{0=>0.07394653730860076, 1=>0.0739598476853163, 2=>0.07398647083461522}.to_a
#=> [[0, 0.07394653730860076], [1, 0.0739598476853163], [2, 0.07398647083461522]]
于 2013-05-14T20:15:16.513 回答
7

绝对使用 Hash#to_a 方法,它会产生你正在寻找的东西。

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

Hash#values 只会给你散列中每个元素的值,而 Hash#keys 只会给你键。幸运的是, to_a 的默认行为正是您要寻找的。

于 2013-05-14T20:17:39.283 回答