ruby矩阵内部有名值对,按照某一个名值对该怎么排序?(在线等)
现有ruby的矩阵test如下:
test=[{"a"=>"b", "b"=>"2"}, {"a"=>"c", "b"=>"3"}, {"a"=>"a", "b"=>"1"}]
我要将其按照名值对的"b"来将其排序,分别是升序和降序排列,请各位大侠指教。
升序:
[{"a"=>"a", "b"=>"1"},{"a"=>"b", "b"=>"2"}, {"a"=>"c", "b"=>"3"}]
降序:
[{"a"=>"c", "b"=>"3"}, {"a"=>"b", "b"=>"2"},{"a"=>"a", "b"=>"1"}]
急急急。。。。。
[解决办法]
t=[{"a"=>"b", "b"=>"2"}, {"a"=>"c", "b"=>"3"}, {"a"=>"a", "b"=>"1"}]
a=[];t.map{|x| x['b']}.sort.each{|x| t.each{|y| a << y if y['b'] == x } }
p a
[解决办法]
test.sort_by{|u|u.values} 升序
test.sort{|item1,item2|item2.values <=> item1.values} 降序