0

我有一个令人不安的案例:我想对具有相关权重的字符串列表进行排序,如下所示:

@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 的差异比其他元素具有更好的百分比。

我尝试按重量分组,然后按字符串排序,但它不起作用。我也尝试计算比率,但我仍然没有得到正确的有序列表。

非常感谢你的回答。

4

1 回答 1

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"}]
于 2012-11-30T14:49:05.653 回答