配列の取り出し方

こんなRuby配列の問題があった。

 

fruits_price = "apple", [200, 250, 220, ["orange", [100, 120, 80]], ["melon", [1200, 1500]]]
(出力)
appleの合計金額は670円です
orangeの合計金額は300円です
melonの合計金額は2700円です

Q,この配列から果物の名前とその合計金額を算出せよ。

 

 

で、その答えが

fruits_price ="apple", [200, 250, 220, ["orange", [100, 120, 80]], ["melon", [1200, 1500]]]

fruits_price.each do |fruit|
  sum = 0
  fruit[1].each do |price|
    sum += price
  end
  puts "#{fruit[0]}の合計金額は#{sum}円です"
end

 

ここで出てきた fruit[1]がわかりづらかったのでまとめる。

 

 今回難しくしているのは、配列の中の配列という構造である。

 fruit_priceの配列の中に、果物の値段のデータが複数あって、それが配列で収められている。この配列内配列を呼び出しているのがfruit[1]である。

 

 単純にarray[0]の形で配列内のKey番号のデータを呼び出すことができる。

 今回はfruit[1]で配列内の2番目のKeyである[200,250,220]を一つずつ繰り返し呼び出し、足し合わせてsumを作っている。

 

 いきなりこうやって配列ない配列とか出てきても、冷静に考えれば怖くない。以上