Sal*_*hag 3 ruby sorting ruby-on-rails
我有一个二维数组,具有以下结构
a = [["5/2013", 20.0, 6.0, 6.0],
["7/2013", 73.0, 66.0, 66.0],
["50/2013", 11530.0, 12625.27, 12087.75],
["2/2014", 5926.0, 6058.0, 5876.4],
["3/2013", 15.0, 0.0, 0.0],
["4/2013", 15.0, 0.0, 0.0]]
Run Code Online (Sandbox Code Playgroud)
我想基于第一个元素对数组进行排序,每个数组的第一个元素表示一年中没有一年(即"2014年2月"意味着2014年的第二周,大于"50/2013")结果将像这个
["3/2013", 15.0, 0.0, 0.0],
["4/2013", 15.0, 0.0, 0.0],
["5/2013", 20.0, 6.0, 6.0],
["7/2013", 73.0, 66.0, 66.0],
["50/2013", 11530.0, 12625.27, 12087.75],
["2/2014", 5926.0, 6058.0, 5876.4],
]
Run Code Online (Sandbox Code Playgroud)
我试过这个
a.sort{|a,b| a[0].split('/')[1].to_i <=> b[0].split('/')[1].to_i && a[0].split('/') [0].to_i <=> b[0].split('/')[0].to_i}
Run Code Online (Sandbox Code Playgroud)
但它没有帮助.我是红宝石和铁轨的新手.任何人都可以帮我解决我的问题.
a.sort_by {|i| i.first.split('/').map(&:to_i).reverse }
#[
# ["3/2013", 15.0, 0.0, 0.0],
# ["4/2013", 15.0, 0.0, 0.0],
# ["5/2013", 20.0, 6.0, 6.0],
# ["7/2013", 73.0, 66.0, 66.0],
# ["50/2013", 11530.0, 12625.27, 12087.75],
# ["2/2014", 5926.0, 6058.0, 5876.4]
#]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2118 次 |
| 最近记录: |