Rubyの配列が["eat", "pie"]
であり、この配列を反復したいと思いますが、配列の各要素の最後に文字を追加するのは"ay"
です?反復中に配列の要素を変更する方法
ありがとうございます。あなたはArray#map
を使用することができます
Rubyの配列が["eat", "pie"]
であり、この配列を反復したいと思いますが、配列の各要素の最後に文字を追加するのは"ay"
です?反復中に配列の要素を変更する方法
ありがとうございます。あなたはArray#map
を使用することができます
:
array = ["eat","pie"]
p array.map { |element| "#{element}ay" }
# => ["eatay", "pieay"]
それはあなたがやった変更を加えた新しい配列を与え、あなたの「オリジナル」の配列は、以前のように残っています:詳細情報については
p array.map { |element| "#{element}ay" } # ["eatay", "pieay"]
p array # ["eat", "pie"]
素晴らしい!私がこれを(反復している間、要素が "e"で始まって "ay"を追加し、 "p"で始まれば "ya"を追加する) – naufragio
これは別の質問です。 [周りを見回して](https://stackoverflow.com/search?q=pig+latin+ruby)、あなたはそれを尋ねる最初の人ではありません。 –
@naufragioあなたは[条件付き](http://ruby-doc.org/core-2.4.2/doc/syntax/control_expressions_rdoc.html)が必要です。 'if element.start_with?( 'e')...' – Stefan
Array#collectは、配列のすべての項目に対して指定されたコードブロックを適用し、新しい配列を返します。
array = ["eat","pie"]
array.collect { |element| "#{element}ay" }
なぜ配列を繰り返すうちに要素を変更する必要がありますか? – Stefan
私の好みではなく、 '[" eat "、" pie "]。product([" ay "])map(&:join)#=> [" eatay "、" pieay "]' –