4

If I start with two arrays such as:

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

How to merge this array into one array like this?

arraymerge = [{"ID":"1","name":"Dog"}, {"ID":"2","name":"Cat"}]
Kathryn
  • 1,557
  • 8
  • 12
Tije Kusnadi
  • 43
  • 1
  • 4

4 Answers4

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

Or maybe this is superfluous:

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"}]
Sebastián Palma
  • 32,692
  • 6
  • 40
  • 59
5

Other answer for your question is to use Array#concat:

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

array1.concat(array2)
# [{"ID":"1","name":"Dog"}, {"ID":"2","name":"Cat"}]
Sebastián Palma
  • 32,692
  • 6
  • 40
  • 59
HardSystem
  • 99
  • 9
3

Just add them together:

puts array1+array2
{:ID=>"1", :name=>"Dog"}
{:ID=>"2", :name=>"Cat"}

Or:

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

See also: Merge arrays in Ruby/Rails

Sebastián Palma
  • 32,692
  • 6
  • 40
  • 59
Kathryn
  • 1,557
  • 8
  • 12
0

You can just use + operator to do that

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

arraymerge = array1 + array2
#=> [{:ID=>"1", :name=>"Dog"}, {:ID=>"2", :name=>"Cat"}]
Sebastián Palma
  • 32,692
  • 6
  • 40
  • 59
sa77
  • 3,563
  • 3
  • 24
  • 37