0

ハッシュの配列を時間でソートする最良の方法は何ですか?

[
  {:scenario_name=>"Scenario: Two different numbers", :scenario_line=>5, :feature_file=>"multiplication.feature", :time=>"0m2.004s"},
  {:scenario_name=>"Scenario: Sum of many numbers", :scenario_line=>6, :feature_file=>"addition.feature", :time=>"0m22.031s"},
  {:scenario_name=>"Scenario: Regular numbers", :scenario_line=>5, :feature_file=>"division.feature", :time=>"0m3.004s"},
  {:scenario_name=>"Scenario: Subtract two different numbers", :scenario_line=>6, :feature_file=>"subtraction.feature", :time=>"0m3.004s"}
]

したがって、次のように時間で(降順で)ソートされることを期待しています。

[
  {:scenario_name=>"Scenario: Sum of many numbers", :scenario_line=>6, :feature_file=>"addition.feature", **:time=>"0m22.031s**"},
  {:scenario_name=>"Scenario: Regular numbers", :scenario_line=>5, :feature_file=>"division.feature", **:time=>"0m3.004s**"},
  {:scenario_name=>"Scenario: Subtract two different numbers", :scenario_line=>6, :feature_file=>"subtraction.feature", **:time=>"0m3.004s**"},
  {:scenario_name=>"Scenario: Two different numbers", :scenario_line=>5, :feature_file=>"multiplication.feature", **:time=>"0m2.004s**"}
]

時代はStringsなので、前に変換する必要がありIntますか?または、並べ替える方法はありますか?

4

3 に答える 3

2
array.sort_by{|h| h[:time].scan(/[\d.]+/).map(&:to_f)}.reverse
于 2013-06-27T18:15:03.530 に答える