0
私はこのようになりますハッシュの配列があります2次配列の文字列を使用してこの配列のハッシュをソートするにはどうすればよいですか?
user_array = [<#Hashie::Mash id="1" name="Ben">, <#Hashie::Mash id="2" name="Scott">, <#Hashie::Mash id="3" name="David">]
をそして私はまた、IDを含む配列は、外部ソースから引っ張ってきた:私はuser_array
を注文するfreq_array
を使用する必要が
freq_array = ["1","2","2","3","2","3"]
IDが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ハッシュのフォーマットが間違っています。修正しました。
'user_array.sort_by {| user | -freq_array.count(user ["id"])} ' – Nakilon
の方が短い;)私はもっと読みやすくすることもできる:' user_array.sort_by {| user | freq_array.count(user ["id"])} .reverse'これは遅いですが、何が起こっているのかがはっきりしています – iain
回答者に感謝します。カウントは正常に機能していますが、user_arrayは実際には全く注文されていません。私は、user_arrayの各エントリが、実際に私が質問で示した方法とは少し違っていることに気付きました。私はこれを反映するために質問を編集しました。 – ben