Как я могу отсортировать этот массив хэшей, используя вторичный массив строк? - PullRequest
0 голосов
/ 12 декабря 2010

У меня есть массив хэшей, который выглядит следующим образом:

user_array = [<#Hashie::Mash id="1" name="Ben">, <#Hashie::Mash id="2" name="Scott">, <#Hashie::Mash id="3" name="David">]

И у меня также есть массив, который содержит идентификаторы, извлеченные из внешнего источника:

freq_array = ["1","2","2","3","2","3"]

Мне нужноиспользуйте freq_array для заказа user_array, так что пользователь, чей идентификатор больше всего отображается в freq_array, является первым в user_array.Таким образом, исходя из вышеизложенного freq_array, user_array будет

user_array = [<#Hashie::Mash id="2" name="Scott">, <#Hashie::Mash id="3" name="David">, <#Hashie::Mash id="1" name="Ben">]

Каков наилучший способ сделать это?Спасибо за чтение.

РЕДАКТИРОВАТЬ: я неправильно понял формат хэшей user_array.Исправили.

1 Ответ

5 голосов
/ 12 декабря 2010
user_array.sort_by { |user| freq_array.count(user["id"]) * -1 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...