多維數組我有以下的數組:排序在紅寶石
[["2010-01-10", 2], ["2010-01-09", 5], ["2009-12-11", 3], ["2009-12-12", 12], ["2009-12-13", 0]]
只想通過每組中的第二值進行排序,並返回最高的國家之一,像我想輸出到使用上面給定的輸入爲12
。
更新
我想補充一點,我在此爲使用to_a
一個數組,從一個哈希值,所以如果有去做相同的哈希那將是更好的。
多維數組我有以下的數組:排序在紅寶石
[["2010-01-10", 2], ["2010-01-09", 5], ["2009-12-11", 3], ["2009-12-12", 12], ["2009-12-13", 0]]
只想通過每組中的第二值進行排序,並返回最高的國家之一,像我想輸出到使用上面給定的輸入爲12
。
更新
我想補充一點,我在此爲使用to_a
一個數組,從一個哈希值,所以如果有去做相同的哈希那將是更好的。
使用此對您的哈希:
hash.values.max
如果你只需要最高的元素,沒有必要對它進行排序!
要通過第二個值
x=[["2010-01-10", 2], ["2010-01-09", 5], ["2009-12-11", 3], ["2009-12-12", 12], ["2009-12-13", 0]]
x.sort_by{|k|k[1]}
=> [["2009-12-13", 0], ["2010-01-10", 2], ["2009-12-11", 3], ["2010-01-09", 5], ["2009-12-12", 12]]
只需注意:'sort_by'需要Ruby 1.8.7+ – 2010-01-12 20:31:56
調用sort
方法對您的哈希對它進行排序排序。
hash = hash.sort { |a, b| b[1] <=> a[1] }
然後將你的哈希轉換爲一個數組並提取第一個值。
result = hash.to_a[0][1]
如果你想與最大值的鍵值對:
hash.max_by {|key, val| val} # => ["2009-12-12", 12]
需要Ruby 1.8.7+
我幾乎不好意思問這個問題了。謝謝+1 – 2010-01-12 03:26:21