我正在使用两个类似哈希的数组来处理Ruby:
a = [{'name'=> 'Ana', 'age'=> 42 },
{'name'=> 'Oscar', 'age'=> 22 },
{'name'=> 'Dany', 'age'=> 12 }]
b = [{'name'=> 'Dany', 'country'=> 'Canada' },
{'name'=> 'Oscar', 'country'=> 'Peru'},
{'name'=> 'Ana', 'country'=>'France'}]
我按照这样排序:
a.sort_by!{|c| c['name']}
b.sort_by!{|c| c['name']}
并且它有效,但由于我在两个阵列上做同样的事情,我想做同样但在一行;我的意思是,一次对两个数组进行排序。
我该怎么做?
答案 0 :(得分:2)
把它们放在一个数组中。
a = [{'name'=> 'Ana', 'age'=> 42 },
{'name'=> 'Oscar', 'age'=> 22 },
{'name'=> 'Dany', 'age'=> 12 }]
b = [{'name'=> 'Dany', 'country'=> 'Canada' },
{'name'=> 'Oscar', 'country'=> 'Peru'},
{'name'=> 'Ana', 'country'=>'France'}]
[a, b].each{|ar| ar.sort_by!{|c| c['name']}}
p b # => [{"name"=>"Ana", "country"=>"France"}, {"name"=>"Dany", "country"=>"Canada"}, {"name"=>"Oscar", "country"=>"Peru"}]
答案 1 :(得分:0)
更简单的方式 -
a.zip(b).flatten.sort_by!{|c| c['name']})