我有一个二维数组,其结构如下:
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]]
我希望按照第一个元素对数组进行排序,每个数组的第一个元素表示该年中的第几周(例如,“2014年第2周”大于“2013年第50周”)。 结果将会像这样。
["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],
]
我尝试使用这个。
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}
但这并没有什么帮助。我对Ruby和Rails还很陌生。有没有人能帮我解决问题呢?
"2/2014"
应该排在第一位,"7/2013"
应该排在最后,与您的输出不同(忽略您的预期输出根本不是有效的 Ruby 表达式这一事实)。您当前的问题存在矛盾。 - sawa