2017-10-07 19 views
0

Rubyの配列が["eat", "pie"]であり、この配列を反復したいと思いますが、配列の各要素の最後に文字を追加するのは"ay"です?反復中に配列の要素を変更する方法

ありがとうございます。あなたはArray#mapを使用することができます

+0

なぜ配列を繰り返すうちに要素を変更する必要がありますか? – Stefan

+2

私の好みではなく、 '[" eat "、" pie "]。product([" ay "])map(&:join)#=> [" eatay "、" pieay "]' –

答えて

4

array = ["eat","pie"] 
p array.map { |element| "#{element}ay" } 
# => ["eatay", "pieay"] 

それはあなたがやった変更を加えた新しい配列を与え、あなたの「オリジナル」の配列は、以前のように残っています:詳細情報については

p array.map { |element| "#{element}ay" } # ["eatay", "pieay"] 
p array # ["eat", "pie"] 

mapおよびmap!を参照されたい。

+0

素晴らしい!私がこれを(反復している間、要素が "e"で始まって "ay"を追加し、 "p"で始まれば "ya"を追加する) – naufragio

+0

これは別の質問です。 [周りを見回して](https://stackoverflow.com/search?q=pig+latin+ruby)、あなたはそれを尋ねる最初の人ではありません。 –

+0

@naufragioあなたは[条件付き](http://ruby-doc.org/core-2.4.2/doc/syntax/control_expressions_rdoc.html)が必要です。 'if element.start_with?( 'e')...' – Stefan

2

Array#collectは、配列のすべての項目に対して指定されたコードブロックを適用し、新しい配列を返します。

array = ["eat","pie"] 
array.collect { |element| "#{element}ay" } 
関連する問題