Ruby:如何将哈希转换为数组

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。

2个回答

20

试试这个:

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

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方法的默认行为正是你需要的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接