Ruby on rails Ruby-如何根据嵌套哈希项的值对数组进行排序?

Ruby on rails Ruby-如何根据嵌套哈希项的值对数组进行排序?,ruby-on-rails,ruby,json,Ruby On Rails,Ruby,Json,我有一些相当复杂的分类工作要做 给定一个散列数组,我需要根据每个散列的键中的值对数组中的散列进行排序 例如(以JSON格式给出): 此JSON是Rails中使用响应的结果。在此之前,我想根据每个散列中“title”键的字母顺序,在数组中切换这些散列 下面是JSON的一部分截图(在Firebug中),以更好地说明我的意思: 任何帮助都将不胜感激 谢谢 你要找的 您可以使用ruby sort_by方法() 所以在你的例子中,仪器是这样的: instruments=[ {"id"=>1,"ti

我有一些相当复杂的分类工作要做

给定一个散列数组,我需要根据每个散列的键中的值对数组中的散列进行排序

例如(以JSON格式给出):

此JSON是Rails中使用响应的结果。在此之前,我想根据每个散列中
“title”
键的字母顺序,在数组中切换这些散列

下面是JSON的一部分截图(在Firebug中),以更好地说明我的意思:

任何帮助都将不胜感激

谢谢

你要找的


您可以使用ruby sort_by方法()

所以在你的例子中,仪器是这样的:

instruments=[
{"id"=>1,"title"=>"Piano","token"=>"piano","count"=>13},
{"id"=>6,"title"=>"Bass Guitar","token"=>"bass","count"=>12},
{"id"=>11,"title"=>"Viola","token"=>"viola","count"=>12},
{"id"=>4,"title"=>"Synth","token"=>"synth","count"=>11},
{"id"=>3,"title"=>"Keyboard","token"=>"keyboard","count"=>9},
{"id"=>7,"title"=>"Saxophone","token"=>"saxophone","count"=>8},
{"id"=>12,"title"=>"Flute","token"=>"flute","count"=>8},
{"id"=>5,"title"=>"Drums","token"=>"drums","count"=>6},
{"id"=>2,"title"=>"Guitar","token"=>"guitar","count"=>5},
{"id"=>8,"title"=>"Violin","token"=>"violin","count"=>5},
{"id"=>9,"title"=>"Vocals","token"=>"vocals","count"=>4},
{"id"=>10,"title"=>"Cello","token"=>"cello","count"=>4}
]
您可以使用它按给定列进行排序(在您的案例中为“标题”)


希望这能有所帮助。

如果它能帮助后续人员,我的JSON是双重嵌套的

products = [
{:product=>{:id=>866468155, :code=>"TB2", :name=>"Thunderbird 2"}},
{:product=>{:id=>805953484, :code=>"FAB1", :name=>"Rolls-Royce FAB 1"}},
{:product=>{:id=>715919491, :code=>"TB1", :name=>"Thunderbird 1"}},
{:product=>{:id=>767677594, :code=>"TB5", :name=>"Thunderbird 5"}},
]
我可以使用

table.sort_by! { |x| x[:product][:name]}

…注意,这也使用了!排序到位,而不是创建一个新数组。

哇,这很简单!明亮的
 instruments.sort_by{|instrument| instrument["title"]}
products = [
{:product=>{:id=>866468155, :code=>"TB2", :name=>"Thunderbird 2"}},
{:product=>{:id=>805953484, :code=>"FAB1", :name=>"Rolls-Royce FAB 1"}},
{:product=>{:id=>715919491, :code=>"TB1", :name=>"Thunderbird 1"}},
{:product=>{:id=>767677594, :code=>"TB5", :name=>"Thunderbird 5"}},
]
table.sort_by! { |x| x[:product][:name]}