-1

私はちょっとした実験をしようとしていますが、現時点では困惑しています。

新しいハッシュを作成します

tt = Hash.new()

次に、キーを使用して内部に 2 つのハッシュを追加します。

tt.merge!(:in => Hash.new)
tt.merge!(:out => Hash.new)

したがって、次のようなハッシュがあります。

{
     :in => {},
    :out => {}
}

res と呼ばれるハッシュの別のハッシュがあり、これを反復処理して、それぞれに対して IF ステートメントを実行します。

res.each do  |x|
    if x[:id] == nil
        tt[:out].merge!(x)
    else 
        tt[:in].merge!(x)
end 
end

ただし、これは前のハッシュの最後の値を新しいハッシュの外側と内側の両方に添付するだけです。

私がやろうとしているのは、IFステートメントを使用して新しいハッシュをINまたはOUTのキーの下に置くことです

したがって、最終的には次のようになります。

{
     :in => {{:1 => 1 ,:2 => 1 ,:3 => 1 ,:4 => 1 ,:5 => 1 },{:1 => 1 ,:2 => 1 ,:3 => 1 ,:4 => 1 ,:5 => 1 }},
    :out => {{:1 => 1 ,:2 => 1 ,:3 => 1 ,:4 => 1 ,:5 => 1 }, {:1 => 1 ,:2 => 1 ,:3 => 1 ,:4 => 1 ,:5 => 1 }}
}

また、これまたは配列にハッシュを使用する必要がありますか?? 最終的には JSON としてエクスポートしたいと考えています。

たとえば、これは機能します。しかし、それが正しいかどうかはわかりません:

tt = Hash.new(:in => Hash.new, :out => Hash.new)
tt.merge!(:in => Array.new)
tt.merge!(:out => Array.new)
ap tt.class
res.each do  |x|
    if x[:id] == nil
        tt[:out] << x   
    else 
        tt[:in] << x
end 
end

タナクス

4

1 に答える 1