代々木で働く超新米エンジニアの足跡

代々木で働くエンジニアです。超新米です。

map sort jsonファイルのソート ハッシュのソート 配列のソート 正規表現 data

【map】 

   eachの強化版

  hairetu = [1,2,3,4]

  hairetu2 = []hairetu.each{|new|

  hairetu2.push(new*2)}

  p hairetu2

 を
 
  hairetu = [1,2,3,4]
 
  p hairetu.map{|ele|   
 
  ele*2
 
  }

と表記できる。

hairetu2の変数が不要になった。内部で変数に代入している。

【sort】:Rubyで多重配列やハッシュをソートする:お題目うぉっち

     :JSONな配列を、指定の項目でソートをかける、PHPとRuby比較 - Qiita

   配列のsort

p [['Tokyo',10],['Nagoya', 2],['Sapporo',50],['Fukuoka',30]].sort { |a,b|
a[1] <=> b[1]
}

   jsonファイルのsort

puts tpo.sort_by{|hash| hash['age'].to_i}

2つめのハッシュの前に-を入れると降順になる

   ハッシュのsort

p myhash = {'Tokyo'=>10, 'Nagoya'=>2, 'Sapporo'=>50, 'Fukuoka'=>30}.sort{|a,b|
a[1] <=> b[1]
}

正規表現

 文字列のパターンを記述するために使う言語

 文字列が指定したパターンを含んでいるか否か調べられる(マッチング)

 Rubyという文字列にマッチする正規表現

 /Ruby/ となる。/パターン/ =~ マッチングしたい文字列でマッチングしてるか調べる

data = "2015年7月10日"

/(\d{4})年(.+?)月(.+?)日/ =~ data

print $1,".",$2,".",$3,"\n"

 

d4は数字4桁の数字、.任意の文字、+は一個以上、?は最短マッチを表す

正規表現は、何文字目でヒットしたか数値を返し、上記でヒットした文字列は順に$1、$2、・・・に代入されていく

【data】

require data で、dataライブラリを読み込む

Date.new(2015,7,10)で日付(今日)を指定してオブジェクト作成