LoginSignup
3
2

More than 3 years have passed since last update.

[Ruby] 二次元配列の取り出し

Posted at

この記事ではmacOS Catalina10.15.6にインストールしたRuby 2.6.5を使っています。

二次元配列とは

  • 配列の中に配列が入っている形です。
  • items_priceのハッシュの中にそれぞれのアイテムが配列として格納されています。
  • さらに、1つ1つのアイテムの中にも名前と値段の配列が入っています。
items_price = [["pen", [100, 200, 120]], ["book", [120, 150, 220]], ["pen_case", [1000, 1500]]]

二次元配列を取り出すには

  • each文を使ってハッシュを取り出します。
  • 今回は二次元なので2回each文を使っているのですね。
items_price = [["pen", [100, 200, 120]], ["book", [120, 150, 220]], ["pen_case", [1000, 1500]]]

items_price.each do |item|
  sum = 0
  item[1].each do |price|
    sum += price
  end
  puts "#{item[0]}の値段は#{sum}円です。"
end

では、penを例に取って一つずつみていきます。

1回目のeach(2行目)

items_price.each do |item| ~ end
# => items_price配列の中の["pen", [100, 200, 120]]を取り出し、ブロック変数itemに代入

2回目のeach(4行目)

item[1].each do |price| ~ end
# => item配列の中の[100, 200, 120]を取り出し、ブロック変数priceに代入
  • ちなみに、item[1]はprice配列の要素の数、つまりここでは3回繰り返すことになります。

出力する

puts "#{item[0]}の値段は#{sum}円です。"
  • item[0]はitem配列の添字が0、["pen", [100, 200, 120]]の"pen"の部分になります。

結果

penの値段は420円です。
bookの値段は490円です。
pen_caseの値段は2500円です。
3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2