2017-06-15 16 views
3

私のような二つのアレイで起動した場合:このような1つの配列に、この配列をマージする方法ruby​​で2つの配列オブジェクトをマージするには?

array1 = [{"ID":"1","name":"Dog"}] 
array2 = [{"ID":"2","name":"Cat"}] 

arraymerge = [{"ID":"1","name":"Dog"}, {"ID":"2","name":"Cat"}] 
+1

'配列1 +配列2#=> [{:ID => "1"、:名=> "犬"}、{:ID => "ID": "1"、 "name": "Dog"}、{"ID": "2"、 "name": "2"、:name => "Cat"}] ' –

答えて

5
array1 = [{ID:"1",name:"Dog"}] 
array2 = [{ID:"2",name:"Cat"}] 
p array1 + array2 
# => [{:ID=>"1", :name=>"Dog"}, {:ID=>"2", :name=>"Cat"}] 

それとも、これは余計です:

array1 = [{ID:"1",name:"Dog"}] 
array2 = [{ID:"2",name:"Cat"}] 
array3 = [{ID:"3",name:"Duck"}] 

p [array1, array2, array3].map(&:first) 
# => [{:ID=>"1", :name=>"Dog"}, {:ID=>"2", :name=>"Cat"}, {:ID=>"3", :name=>"Duck"}] 
+0

":"を削除できますか? –

+0

いいえ@TijeKusnadi、それはうまくいきません。それはオブジェクトの 'to_proc'を呼び出す方法です。これは' .map {| e | e.first} 'では、使用するものを選択できます。 –

3

ちょうどそれらを一緒に追加します。

irb(main):005:0> puts array1+array2 
{:ID=>"1", :name=>"Dog"} 
{:ID=>"2", :name=>"Cat"} 

または:

irb(main):006:0> p array1+array2 
[{:ID=>"1", :name=>"Dog"}, {:ID=>"2", :name=>"Cat"}] 

も参照してください:Merge arrays in Ruby/Rails

+0

arraymerge = [{ Cat "}] –

+0

配列記号がまだ残っていますが、どうすればいいですか? –

+0

まだ配列です。 'puts'は' p'とは少し違った印字をします。 – Kathryn

4

あなたの質問の完璧な答えは:uは私の答えを好きなら

array1 = [{"ID":"1","name":"Dog"}] 
array2 = [{"ID":"2","name":"Cat"}] 
arraymerge = array1.concat(array2) 

# Output: [{"ID":"1","name":"Dog"}, {"ID":"2","name":"Cat"}] 

1を投票してください!

あなただけやって +演算子を使用することができます
2

その

array1 = [{"ID":"1","name":"Dog"}] 
array2 = [{"ID":"2","name":"Cat"}] 

arraymerge = array1 + array2 
#=> [{:ID=>"1", :name=>"Dog"}, {:ID=>"2", :name=>"Cat"}] 
関連する問題