2014-02-07 2 views

ответ

4

Использование Enumerable#sort_by. Возвращаемое значение блока используется в качестве ключа сравнения.

[{683=>5}, {689=>2}, {692=>10}].sort_by { |h| -h.values[0] } 
# => [{692=>10}, {683=>5}, {689=>2}] 
+5

Попробуйте 'sort_by {| h | h.values ​​[0]} .reverse! ', удивительно, что он слабее быстрее и немного яснее, ИМХО. – toro2k

+0

@ toro2k, я просто попробовал его с фруктовым в Windows 7 64bit, ruby ​​2.0. Он говорит, что оба они похожи. – falsetru

+0

На моем ящике Debian fruity сообщается о 10% -ной разнице, ну, кажется, это просто немного яснее ... :-) – toro2k

Смежные вопросы