Предположим, у вас есть массив бегунов:
runners = [al, betty, chris, debby]
И у вас есть метод time
, который возвращает время бегунов в гонке.
В случае, когда метод time
всегда возвращает число с плавающей запятой, я знаю, что вы можете отсортировать бегунов по времени, используя sort_by
следующим образом:
runners.sort_by do |runner|
runner.time
end
Однако предположим, что time
иногда возвращает строку, скажем "disqualified"
. В таком случае, как бы вы отсортировали бегунов по времени с последними дисквалифицированными бегунами? Что, если вы хотите, чтобы сначала были дисквалифицированные участники или в какой-то другой позиции?