我有一个字符串数组:
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:
如何对"阿尔法"或"贝塔"类型的字符进行排序,如"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
arr.sort_by{|a| a.split('.').map &:to_i }
哪个将:
- CCD_ 4中的每一个串组成组件
- 将它们分别更改为整数(
map &:to_i
( - 相互比较这些数组