LoginSignup
0
0

More than 5 years have passed since last update.

【Ruby】コーディングメモ(連想配列)

Posted at

環境

ruby 2.4.1p111

連想配列

sample.rb
#連想配列の宣言
colors = { Black: "#000000", Navy: "#000080", DarkBlue: "#00008B", MediumBlue: "#0000CD"}

#キーを渡して、配列値を取得するには以下のように取得する
puts colors[:Black]

#キーを追加する場合
colors["Blue"] = "#0000FF"

#配列の数を求める場合
puts colors.length

#空か判定する場合
puts colors.empty?

#キーが含まれるか:
colors.has_key?(:Black)

#繰り返し処理(each)
# (ブロック引数を省略すると、Enumeratorオブジェクトが返ってくる)
colors.each
#(結果)
 => #<Enumerator: {:Black=>"#000000", :Navy=>"#000080", :DarkBlue=>"#00008B", :MediumBlue=>"#0000CD", "Blue"=>"#0000FF"}:each> 

# 以下のようにブロックを指定して繰り返し処理を行える
colors.each {|color_name, color_val| puts "#{color_name}\t#{color_val}" }
#(結果)
Black   #000000
Navy    #000080
DarkBlue        #00008B
MediumBlue      #0000CD
Blue    #0000FF

#連想配列のキーのみ繰り返し(each_key)
colors.each_key {|color_name| puts "#{color_name}" } 
#(結果)
Black
Navy
DarkBlue
MediumBlue
Blue

#連想配列の値のみ繰り返し(each_value)
colors.each_value{|color_val| puts "#{color_val}" } 
#(結果)
#000000
#000080
#00008B
#0000CD
#0000FF

#連想配列を検索
colors.select {|color_key, color_val| color_val == "#000080"}
#(結果)
 => {:Navy=>"#000080"} 

#繰り返し処理を実行して、結果を配列にして返す
plices = { Apple: 120, Orange: 150, Grape: 360}
tax_inc_plicess = plices.collect{|k, v| (v * 1.08).to_i}

puts tax_inc_plicess 
#(結果)
129
162
388

#連想配列をマージする
# 果物
fluets = { Apple: 120, Orange: 150, Grape: 360}
# 野菜
vegetables= { carrot: 300, potato: 180, onion: 200}
# 果物と野菜をマージして、結果を出力
flts_and_vegets = fluets .merge(vegetables)
puts flts_and_vegets

#(結果)
{:Apple=>120, :Orange=>150, :Grape=>360, :carrot=>300, :potato=>180, :onion=>200}
0
0
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
0
0