Ich führe Operationen auf Arrays und ich bin in einigen Problemen. Ich habe array_1
dupliziert zu array_2
zugewiesen. Wenn ich Operationen auf Array_2 durchgeführt habe, ändert die uniq
Methode das ursprüngliche Array.Ruby 2.3: Kann ein Array nicht duplizieren. Original-Array geändert
array_3
ist, was ich erreichen sollte, aber ich verstehe nicht, warum die Operationen dort erhalten modifizierten array_1
Ich brauche eine Erklärung, warum dieses Verhalten auftritt, und was kann ich tun, dies zu verhindern.
array_1 = [["Ed","2",],["Ann","2"],["Sue","2"],["Ed","3",],["Ann","3"],["Sue","3"]]
array_2 = array_1.dup
array_2 = array_2.uniq(&:first)
array_3=[]
array_2.each do |a2|
a2.pop
array_3.push(a2)
end
puts array_3
=> [["Ed"], ["Ann"], ["Sue"]]
puts array_1
=> [["Ed"], ["Ann"], ["Sue"], ["Ed", "3"], ["Ann", "3"], ["Sue", "3"]]
http://ruby.about.com/od/advancedruby/a/deepcopy.htm – matt