Raj*_*han 1 ruby sorting natural-sort
list = ["HM00", "HM01", "HM010", "HM011", "HM012", "HM013", "HM014", "HM015", "HM016", "HM017", "HM018", "HM019", "HM02", "HM020", "HM021", "HM022", "HM023", "HM024", "HM025", "HM026", "HM027", "HM028", "HM029", "HM03", "HM030", "HM031", "HM032", "HM033", "HM034", "HM035", "HM036", "HM037", "HM038", "HM039", "HM04", "HM040", "HM041", "HM042", "HM043", "HM044", "HM045", "HM046", "HM047", "HM05", "HM06", "HM07", "HM08", "HM09"]
Run Code Online (Sandbox Code Playgroud)
我希望将结果显示为[“ HM00”,“ HM01”,“ HM002” ...],但使用排序方法却得到以下结果
["HM00", "HM01", "HM010", "HM011", "HM012", "HM013", "HM014", "HM015", "HM016", "HM017", "HM018", "HM019", "HM02"]
Run Code Online (Sandbox Code Playgroud)
如果每个元素的末尾都有一个数字
list.sort_by { |item| item.scan(/\d*$/).first.to_i }
Run Code Online (Sandbox Code Playgroud)
匹配该数字的末尾,取第一个(因为扫描为您提供了结果数组),将其转换为整数
更简单
list.sort_by { |item| item[/\d*$/].to_i }
Run Code Online (Sandbox Code Playgroud)
[] 已经参加了第一场比赛
| 归档时间: |
|
| 查看次数: |
93 次 |
| 最近记录: |