本文共 671 字,大约阅读时间需要 2 分钟。
当然,Ruby 中的 Hash 和集合 Set 类似,都是没有所谓顺序的,默认是按照数据插入的先后顺序来排列的。但是你肯定有过这样的需求:怎么让 Ruby 中的 Hash 按照键的顺序重新排列得到新的 Hash 呢?下面就给你展示一下吧!
[5] pry(main)> temp = {}=> {}[6] pry(main)> temp["ninjas"]=36=> 36[7] pry(main)> temp["pirates"]=12=> 12[8] pry(main)> temp["cheese"]=222=> 222[9] pry(main)> temp=> {"ninjas"=>36, "pirates"=>12, "cheese"=>222}[10] pry(main)> temp.sort_by { |key, val| key }=> [["cheese", 222], ["ninjas", 36], ["pirates", 12]][11] pry(main)> temp.sort_by { |key, val| key }.to_h=> {"cheese"=>222, "ninjas"=>36, "pirates"=>12}[12] pry(main)> temp.sort.to_h=> {"cheese"=>222, "ninjas"=>36, "pirates"=>12}
友情提示:如果你的 Hash 特别特别大,而且你对排序的需求并不是十分强烈的话,不建议这么折腾哟(资源消耗和时间浪费都会很严重)。
转载地址:http://wijqi.baihongyu.com/