繁体   English   中英

如何将这个Ruby哈希转换为数组?

[英]How would I convert this Ruby hash to an array?

我将这些数据放在哈希中:

[{"total_time"=>"00:04:48.563044"}, {"total_time"=>"00:05:29.835918"}, {"total_time"=>"00:09:38.622569"}]

但是我想要这个:

["00:04:48.563044", "00:05:29.835918", "00:09:38.622569"]

需要使用Ruby 1.8.7。

您可以通过以下方式进行管理:

list.collect(&:values).flatten

有很多方法可以做到这一点。 让我们将其分解为您需要完成的基本步骤:

  1. 遍历哈希数组中的每个项目
  2. 对于每个项目,获取时间值
  3. 将它们重新组合成列表

由于您要获取每个项目的结果,而不仅仅是查看它,因此,您将需要使用map (或collect ,它们实际上是相同的方法)。 这将涉及步骤1和3。步骤2本身非常简单。 您只需要使用item['total_time']获取键的值。 放在一起,就可以了:

times.map{ |time| time['total_time'] }

谈到实现此目的的大量方法:

a = [{"total_time"=>"00:04:48.563044"}, {"total_time"=>"00:05:29.835918"}, {"total_time"=>"00:09:38.622569"}]

p a.map(&:flatten).map(&:last)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM