如何使用二级字符串数组对这个哈希数组进行排序?

ben*_*ben 0 ruby ruby-on-rails

我有一系列哈希,看起来像这样:

user_array = [<#Hashie::Mash id="1" name="Ben">, <#Hashie::Mash id="2" name="Scott">, <#Hashie::Mash id="3" name="David">]
Run Code Online (Sandbox Code Playgroud)

我还有一个包含从外部源提取的ID的数组:

freq_array = ["1","2","2","3","2","3"]
Run Code Online (Sandbox Code Playgroud)

我需要使用freq_array订购user_array,以便其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">]
Run Code Online (Sandbox Code Playgroud)

做这个的最好方式是什么?谢谢阅读.

编辑:我得到了user_array哈希的格式错误.纠正了.

iai*_*ain 5

user_array.sort_by { |user| freq_array.count(user["id"]) * -1 }
Run Code Online (Sandbox Code Playgroud)

  • `user_array.sort_by {| user | -freq_array.count(user ["id"])}` (2认同)