如何对带有 "2.1.2.5" 等数字的字符串数组进行排序?



我有一个字符串数组:

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 }

哪个将:

  1. CCD_ 4中的每一个串组成组件
  2. 将它们分别更改为整数(map &:to_i(
  3. 相互比较这些数组

相关内容

  • 没有找到相关文章

最新更新