【Ruby】破壊的メソッドによる変更
Rubyを学習していて、以下のコードについて質問があります。
array2はライン3でeachによってarray1のそれぞれの要素がリファレンスしている値が順番にコピーされてarray2に代入されいるので
ライン4で破壊的メソッドが使われると、array2もarray1と同じオブジェクトを指しているため、ライン5でのarray2のアウトプットは下記のようになります。
もし、array1の要素を変えてもarray2の要素は変わらずオリジナルの配列のままになるようにしたい場合はどうしたらいいですか?
ちなみにcloneメソッドを試してみましたが結果は変わらずでした。
アドバイスいただけると幸いです。
問題
array1 = %w(Moe Larry Curly Shemp Harpo Chico Groucho Zeppo) array2 = [] array1.each { |value| array2 << value } array1.each { |value| value.upcase! if value.start_with?('C', 'S') } puts array2
現在のアウトプット
Moe Larry CURLY SHEMP Harpo CHICO Groucho Zeppo
求めているアウトプット
Moe Larry Curly Shemp Harpo Chico Groucho Zeppo
ここに問題に対して試したことを記載してください。
試したこと
cloneメソッド