fac*_*toe 4 ruby arrays sorting
我有一个像这样的字符串数组:
["巴西(62)","巴勒斯坦领土占领(6)","马其顿(2)","德国(6)"]
我想用最高价值对它们进行排序,但它让我感到难过.我尝试过各种各样奇怪,精彩(无用)的东西,比如:
cont.sort! { |it| it.scan(/\d+/).to_s.to_i}
Run Code Online (Sandbox Code Playgroud)
sort_by {|e| e[/\d+/].to_i }.reverse
Run Code Online (Sandbox Code Playgroud)
应该做的伎俩.您可以以更有效和更优雅的方式编写此文件(请参阅注释),如下所示:
sort_by {|e| -e[/\d+/].to_i }
Run Code Online (Sandbox Code Playgroud)
请注意-
.
使用sort你可以做到:
sort {|a, b| b[/\d+/].to_i <=> a[/\d+/].to_i }
Run Code Online (Sandbox Code Playgroud)
编辑
注释中建议使用字符串#[].