Задать вопрос
@eldar_web

Как в Ruby можно отсортировать хэш по одному условию?

К примеру, есть хэш list:
list[
{ "plan": 100, 'present': 40 }
{ "plan": 100, 'present': 85 }
{ "plan": 100, 'present': 60 }
]


Как можно отсортировать таким образом, когда значение present ближе к plan по числовому значению, чтобы он был выше? В нашем случае, второй должен быть первым, третий - вторым и первый последним.
  • Вопрос задан
  • 225 просмотров
Подписаться 2 Оценить 2 комментария
Помогут разобраться в теме Все курсы
  • Thinknetica
    Профессиональная разработка на Ruby on Rails
    9 месяцев
    Далее
  • Хороший программист
    Интенсив по Ruby on Rails
    5 месяцев
    Далее
  • Code Basics
    Ruby для начинающих
    1 месяц
    Далее
Решения вопроса 2
@vsuhachev
list.sort { |a,b| a['plan']-a['present'] <=> b['plan']-b['present'] }
Ответ написан
stackoverflow.com/questions/5483889/how-to-sort-an...
Это первая ссылка гугла по запросу: "ruby array of hashes sort".
По убыванию будет:
array_of_hashes.sort_by { |hsh| hsh[:zip] }.reverse
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы