我有一个字符串数组:
arr = ["2.1", "2.2", "2.2.1", "2.2.10", "2.2.2", "2.10"]
如果我使用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:
如何对“alpha”或“beta”类型字符进行排序,例如“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
答案 0 :(得分:3)
arr.sort_by{|a| a.split('.').map &:to_i }
将会:
split
将每个字符串转换为组件。map &:to_i
)。