我有一個字符串數組:如何排序數字如「2.1.2.5」的字符串數組?
如果我使用arr.sort
,結果是:
["2.1", "2.10", "2.2", "2.2.1", "2.2.10", "2.2.2"]
我需要:
["2.1", "2.2", "2.2.1", "2.2.2", "2.2.10", "2.10"]
我該如何正確排序呢?
問題2:
我如何排序 「阿爾法」 和 「貝塔」 型的人物,如 「2.1A」 或 「0.9b」
問題3:
如果我有一個字段類型爲字符串的活動記錄陣列,其中包含像這樣的數字,是否真的要在default_scope :order => ...
中設置爲sort_by{|a| a.split('.').map &:to_i }
或者
創建我的模型方法的東西像
def my_sort
#sorting
end
對於這一點:
Block.all.my_sort
看起來像你需要比較版本號碼,像這樣http://stackoverflow.com/questions/2051229/how-to-compare-versions-in-ruby – SirDarius
是否有機會,任何「阿爾法」或將會遇到「beta」類型的字符('2.1a'或'0.9b')? –
是的,有機會。謝謝,我忘了,我可以面對這個問題.. – Benjamin