首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > Ruby Rails >

ruby矩阵内部有名值对,按照某一个名值对该如何排序?()

2012-02-22 
ruby矩阵内部有名值对,按照某一个名值对该怎么排序?(在线等)现有ruby的矩阵test如下:test[{ab, b

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} 降序

热点排行