Skip to content

Instantly share code, notes, and snippets.

@katsuhide
Created October 13, 2013 08:37
Show Gist options
  • Save katsuhide/6959880 to your computer and use it in GitHub Desktop.
Save katsuhide/6959880 to your computer and use it in GitHub Desktop.
配列 / ハッシュ / json周り
## 配列から指定した条件に合致する要素を抜き出す
a = [1,2,3,4,5]
a.select{|x| x%2 == 0 } => [2,4]
## 要素の追加
a = [1, 2, 3,]
a << 99 #=> [1,2,3,4,5,99]
a.unshift(99) #=> [99,1,2,3,4,5,99]
a = [1, 2, 3, 4, 5]
a.push(10) #=> [1, 2, 3, 4, 5, 10]
## ハッシュの生成
h = {"apple"=>150, "banana"=>300, "lemon"=>300}
p h['apple'] #=> 150
p h['banana'] #=> 200
p h['lemon'] #=> 300
p h['papaia'] #=> nil
p h.fetch('apple') #=> 150
p h.fetch('papaia', 500) #=> 500
p h.fetch('papaia') { 500 } #=> 500
p h.fetch('papaia') #=> IndexError
## ハッシュへ要素を追加
h = Hash::new
h['apple'] = 150
h['banana'] = 200
h['lemon'] = 300
h.store("hoge", 333)
## ハッシュ内のキーの存在確認
p h.key?('apple') #=> true
p h.has_key?('orange') #=> false
p h.include?('lemon') #=> true
p h.member?('avocado') #=> false
## ハッシュの要素数の取得
p h.length #=> 3
p h.size #=> 3
## 最小、最大
p [1, 8, 3, 6, 2, 7].max #=> 8
p [1, 8, 3, 6, 2, 7].min #=> 1
## ハッシュの削除
# 要素の削除
h.delete('banana')
# ハッシュの空
h.clear
## ハッシュの変換
# keyの配列
puts h.keys
# valueの配列
puts h.values
# pairの配列
puts h.to_a
# json
JSON.generate(h)
h.to_json
## JSONの変換
# jsonから配列/ハッシュ
JSON.parse(json_obj)
# 配列/ハッシュからjson
JSON.generate(obj)
# 整形したうえでjsonに
JSON.pretty_generate(obj)
# 両方
JSON[obj]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment