Я новичок в ruby и не смог найти ответа или логики о том, как я могу это сделать.Я пытаюсь разделить массив пополам, а половину отсортировать по убыванию, а другую половину - по возрастанию.
Короче говоря, давайте рассмотрим, есть ли у нас следующий массив хэшей:
[
{:rating=>1, :num=>1},
{:rating=>1, :num=>1},
{:rating=>3.5, :num=>37},
{:rating=>4.0, :num=>23},
{:rating=>4.0, :num=>72},
{:rating=>4.0, :num=>38},
{:rating=>3.5, :num=>72},
{:rating=>4.0, :num=>74}
]
Я не очень хорош в объяснении вещей, но я постараюсь лучше объяснить, каков ожидаемый результат.
Сначала мне нужно получить хеш с наименьшим ключом :rating
значение и :num
значение ключа и вставьте его в новый массив.Остальные хэши должны быть отсортированы asc после :rating
и :num
, а затем каждый из хэшей, начиная с того, который имеет наименьшее значение :rating
, должен быть помещен в новый созданный массив, следуя правилу:начало массива и один в конце, пока не останется ни одного хэша.
Таким образом, конечный результат должен выглядеть следующим образом:
[
{:rating=>4.0, :num=>74},
{:rating=>4.0, :num=>72},
{:rating=>3.5, :num=>72},
{:rating=>1, :num=>1},
{:rating=>1, :num=>1},
{:rating=>3.5, :num=>37},
{:rating=>4.0, :num=>23},
{:rating=>4.0, :num=>38}
]
Любая помощь очень ценится.Благодаря.