他の配列に存在するキーの順序に従ってハッシュを並べ替える必要があります。
hash = { a: 23, b: 12 }
array = [:b, :a]
required_hash #=> { b: 12, a: 23 }
一行でそれを行う方法はありますか?
hash = { a: 23, b: 12 }
array = [:b, :a]
array.zip(hash.values_at(*array)).to_h
#=> {:b=>12, :a=>23}
手順:
v = hash.values_at(*array)
#=> [12, 23]
a = array.zip(v)
#=> [[:b, 12], [[:a, 23]]
a.to_h
#=> {:b=>12, :a=>23}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加