09/09/04 18:37:40
>>601
> ソートの基準が2段階のとき
でも条件が単純ならば大抵sort_byですむ
ブロック付sortなんてsort_byが出来てから使ったこと無いなぁ
A=Struct.new(:a,:b)
a = [A.new(2,4),A.new(2,1),A.new(1,5),A.new(1,1)]
p a.sort_by{|o| [o.a,o.b] }
文字列中の数字を数としてソートするなんかだとどう書くんだろう?
a = %w(3a 20a 100a b9 b80 b700 a9b100 a10b100)
p a.sort_by{|e| e.scan(/\d+|\D+/).map{|e| e[/\d/] ? ['0',e.to_i] : [e]}}
こんなんでいいのかな?