sort_byはブロック内の値を使ってソートする
ref = %w(北海道 青森 秋田 岩手) arr = %w(青森 岩手 北海道 北海道 秋田) puts arr.uniq.sort_by{|a| ref.index(a)}
実行結果はこうなる。
北海道 青森 秋田 岩手
sort_by{|a| ref.index(a)}は、
ref中のaのインデックスを使ってソートをする、という意味。
だからrefで指定された順番通りにaryがソートされる。
ソースはRuby初心者スレッド Part 12で、
実はいくつか前のエントリから、
ずっとここに書かれていることをネタに投稿していたのだけど、
やっぱりソースはちゃんと書いておくべきなんだろうか。
スクリプトもほとんどそのまんまだし、
書いておくべきかどうかと言ったら、やっぱり書いておくべきなんだろうなぁ。