如何通过散列中的值对散列数组进行sorting?
这个Ruby代码不像我所期望的那样:
# create an array of hashes sort_me = [] sort_me.push({"value"=>1, "name"=>"a"}) sort_me.push({"value"=>3, "name"=>"c"}) sort_me.push({"value"=>2, "name"=>"b"}) # sort sort_me.sort_by { |k| k["value"]} # same order as above! puts sort_me
我正在寻找关键字“值”sorting哈希数组,但他们打印未分类。
Ruby的sort
不会在原地sorting。 (你有Python的背景,也许?)
rubysort!
就地sorting,但sort_by
没有就地变体。 在实践中,你可以这样做:
sorted = sort_me.sort_by { |k| k["value"] } puts sorted
根据@ shteef,但与sort!
实施sort!
build议如下:
sort_me.sort! { |x, y| x["value"] <=> y["value"] }
尽pipeRuby没有in-place变体,你可以这样做:
sort_me = sort_me.sort_by { |k| k["value"] }
Array.sort_by!
在1.9.2中join
你可以使用sort_me.sort_by!{ |k| k["value"]}
sort_me.sort_by!{ |k| k["value"]}
。 这应该工作。