2017-06-15 4 views
3

Wenn ich mit zwei Arrays wie starten:Wie verschmelzen zwei Array-Objekte in Ruby?

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

Wie fusionieren dieses Array in ein Array wie folgt?

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

'array1 + array2 # => [{: ID => "1": name => "Dog"}, {: ID => "2",: name => "Katze"}] –

Antwort

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

Vielleicht ist dies überflüssig:

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

können wir ":" entfernen? –

+0

Nein @TijeKusnadi, das würde nicht funktionieren, das ist die Art, 'to_proc' für das Objekt aufzurufen, entspricht dem Schreiben' .map {| e | e.first} ', können Sie auswählen, was Sie verwenden möchten. –

3

fügen sie einfach zusammen:

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

Oder:

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

Siehe auch: Merge arrays in Ruby/Rails

+0

arraymerge = [{"ID": "1", "Name": "Hund"}, {"ID": "2", "Name": " Katze "}] –

+0

Ich möchte das Array-Symbol immer noch da, wie mache ich das? –

+0

Es ist immer noch ein Array. 'puts' druckt es etwas anders als' p'. – Kathryn

4

die perfekte Antwort auf Ihre Frage ist:

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

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

Bitte stimmen +1, wenn u meine Antwort gefällt!

2

Sie nur + Betreiber tun können, dass

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

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