我有一个令人不安的案例:我想对具有相关权重的字符串列表进行排序,例如:
@array = [{0 => "string"}, {0 => "my string"}, {2 => "my very long string which I want to match"}]
排序的结果应该是:
{2 => "my very long string which I want to match"}
{0 => "my string"}
{0 => "string"}
第一个元素是非常长的字符串,因为差异pound / string.length与其他元素的比例更高。
我尝试按重量分组排序,然后按字符串排序,但它不起作用。我也尝试计算比率,但我仍然没有得到正确的有序列表。
非常感谢您的回答。
答案 0 :(得分:2)
@array.sort_by do |h|
pound, string = h.first
-pound.to_f / string.length
end
#=> [{2=>"my very long string which I want to match"}, {0=>"my string"}, {0=>"string"}]