2016-11-17 6 views
3

外側のループに内部ループの値を返します更新されたLetterNumberオブジェクトだから私は内側のループが、それぞれの反復でletter_numberオブジェクトを外側のループに戻すようにします。これはループを別のメソッドや何かに壊すのではなく、ある種のイテレータで可能ですか?ルビーはどのように私は外側のループの.MAPに内部ループから値を返すか、例

答えて

3

あなたは直接の合計を計算するinjectメソッドを使用することができます。

class LetterNumber 
    def initialize(letter, number) 
    @letter = letter 
    @number = number 
    end 
end 

def do_stuff 
    letter_numbers = // array of LetterNumber objects 
    numbers = [1, 2, 3] 

    letter_numbers.map do |letter_number| 
    letter.number += numbers.inject(:+) 
    letter_number 
    end 
end 

たり、ループの後letter_number返すためにeach_with_objectを使用しています。

def do_stuff 
    letter_numbers = // array of LetterNumber objects 
    numbers = [1, 2, 3] 

    letter_numbers.map do |letter_number| 
    numbers.each_with_object(letter_number) do |number| 
     letter_number.number = letter_number.number + number 
    end 
    end 
end 
関連する問題