У меня есть массив хэш, как указано ниже:Сортировка массива хэш на основе массива отсортированных значений
user_quizzes = [{:id => 3897, :quiz_id => 1793, :user_id => 252}, {:id => 3897, :quiz_id => 1793, :user_id => 475}, {:id => 3897, :quiz_id => 1793, :user_id => 880}, {:id => 3897, :quiz_id => 1793, :user_id => 881}, {:id => 3897, :quiz_id => 1793, :user_id => 882}, {:id => 3897, :quiz_id => 1793, :user_id => 883}, {:id => 3897, :quiz_id => 1793, :user_id => 884}]
Кроме того, на основе определенного состояния я принял значение ключа «user_id
» из тот же хэш и сортирует его и тот же массив приведен ниже:
sorted_user_ids = [880, 881, 882, 883, 884, 475, 252]
Теперь я нужен user_quizzes
быть перестроен на основе порядка user_id
в sorted_user_ids
массиве.
Может кто-нибудь, пожалуйста, помогите мне в этом. :)
В данном случае 'user_quizzes.sort {| а, б | a [: user_id] <=> b [: user_id]} 'является более читаемым и простым в обслуживании. Хотя я понимаю штрафы за время исполнения. – mudasobwa
@mudasobwa, OP хотят заказать 'sorted_user_ids', а не' user_id': ** ... перестроены в соответствии с порядком 'user_id' в массиве' sorted_user_ids'. ** – falsetru
О, да, вы правы , Прости. – mudasobwa