1
私は多くの記事を読んだことがありますが、まったくこれはやっていないようですが、ややこしいことです。ルビーのハッシュ配列を含むハッシュ
私は値の1つとして配列を含むハッシュを持っているとします。
Iは次のように、(含まれるアレイの大きさであろう)ハッシュの配列にこれを変換するhash = {
:a => 'one',
:arr => [
{:id => 'ten', :amount => 10, :b => 'two'},
{:id => 'twenty', :amount => 20, :b => 'two'},
{:id => 'apple', :amount => 7, :b => 'applesauce'}
],
:c => 3
}
:
# => [
{:a => 'one', :id => 'ten', :amount => 10, :b => 'two', :c => 3},
{:a => 'one', :id => 'twenty', :amount => 20, :b => 'two', :c => 3},
{:a => 'one', :id => 'apple', :amount => 7, :b => 'applesauce', :c => 3}
]
変換は、キー/値のペアがあるものは何でも維持しなければなりません内側と外側の配列、および理想的に私はアクションを実行することを依頼する配列のキーに渡すことができます。
flatten_hash_array(hash, :arr)
私は、Arrayクラスのルビーflatten
は何ではないことを実現します私たちは必要です。動詞をつかむ!どんな助けもありがとう。
驚くばかり! hash.rejectブロックは単にk、vを渡す必要があり、それは魅力のように機能します。ありがとう! def flatten_hash_array(ハッシュ、キー) ハッシュ[キー] .map {|エントリ| end – adamrneary
ちなみに、1.8/1.9の違いが必要です。Rubyは 'hash.reject {| k |}'を受け取ります。利用可能な2つのパラメータです。しかし、ちょっと - それはあなたのためにうれしい。 – Chowlett