2016-08-01 12 views
0

名前の配列をとり、一連の文字列を出力するメソッドを作成する必要があります。どのように出力を配列に格納するのですか?だから、名前の配列を持つ代わりに私は挨拶の配列を持っていますか?あなたが実際に元の配列を変換するのではなく、新しい配列を作成したいしている場合、Rubyで配列に出力を保存

def badge_maker(names) 
    greetings = [] # initialize greetings as an empty array 
    names.each do |name| # for each name in the names array 
    greetings << "Hello, my name is #{name}." # add a greeting for that name 
    end 
    return greetings # return the array of all greetings, at the end 
end 
arrayOne = ["Edsger","Ada","Charles","Alan","Grace","Linus","Matz"] 

badge_maker(arrayOne) 

または:

def badge_maker(array) 
 
    array.each do |i| 
 
    counter = 0 
 
    while counter < 7 
 
     array[counter] << "Hello, my name is #{i}." 
 
     counter += i 
 
    end 
 
    return array 
 
    end 
 
end 
 
arrayOne = ["Edsger","Ada","Charles","Alan","Grace","Linus","Matz"] 
 

 
badge_maker(arrayOne)

答えて

1

これは未テストですが、トリックを行う必要があります挨拶をしたら、これをやってください:

def badge_maker(names) 
    names.map! do |name| # for each name in the names array 
    "Hello, my name is #{name}." # convert it to a greeting for that name 
    end 
end 
arrayOne = ["Edsger","Ada","Charles","Alan","Grace","Linus","Matz"] 

badge_maker(arrayOne) 
# now, arrayOne will contain an array of greetings, not names 
+0

ありがとう、私はそれを修正しました。 –

2

あなたはcです元の配列を変更する場合はmap!を使用してください。しかし、あなたはそれに近づいていますが、eachmapのような反復的な方法は、コレクション内の要素の数を暗黙的に扱うので、ここではあなたの友人です。

def badge_maker(array) 
    array.map! do |el| 
    "Hello " + el 
    end 
end 

array_one = ["Edsger","Ada","Charles","Alan","Grace","Linus","Matz"] 

badge_maker(array_one) 

puts array_one 
#=> Hello Edsger 
#=> Hello Ada 
#=> Hello Charles 
#=> Hello Alan 
#=> Hello Grace 
#=> Hello Linus 
#=> Hello Matz 
5

あなたはArray#productEnumerable#mapArray#joinを使用することができます。

arr = ["Edsger","Ada","Charles","Alan","Grace","Linus","Matz"] 

["How 'ya doin, "].product(arr).map(&:join) 
    #=> ["How 'ya doin, Edsger", "How 'ya doin, Ada", "How 'ya doin, Charles", 
    # "How 'ya doin, Alan", "How 'ya doin, Grace", "How 'ya doin, Linus", 
    # "How 'ya doin, Matz"] 
関連する問題