我如何反转哈希中的元素,保持相同的值和键,但反转它们在哈希中的顺序。
Like so:
{ "4" => "happiness", "10" => "cool", "lala" => "54", "1" => "spider" }
并将其转换为:
{ "1" => "spider", "lala" => "54", "10" => "cool", "4" => "happiness" }
或者,也许我可以运行一个each
向后循环,从哈希中的最后一个元素开始,而不是第一个?
您可以将哈希转换为数组,反转该数组,然后将其转换回哈希:
reversed_h = Hash[h.to_a.reverse]
Hash#to_a http://ruby-doc.org/core/Hash.html#method-i-to_a给你一个数组的数组,内部数组很简单[key,value]
对,然后使用反转该数组Array#reverse http://ruby-doc.org/core/Array.html#method-i-reverse, and Hash[] http://ruby-doc.org/core/Hash.html#method-c-5B-5D转换为[key,value]
配对回哈希。
Ruby 2.1 添加了Array#to_h http://ruby-doc.org/core/Array.html#method-i-to_h方法,所以你现在可以说:
reversed_h = h.to_a.reverse.to_h
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)