トップページ > プログラム > 2014年05月22日 > r8fE+JcD

書き込み順位&時間帯一覧

15 位/168 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000020010000003



使用した名前一覧書き込んだスレッド一覧
811
Ruby 初心者スレッド Part 54

書き込みレス一覧

Ruby 初心者スレッド Part 54
823 :811[]:2014/05/22(木) 14:38:11.10 ID:r8fE+JcD
811です
回答して下さった皆さんありがとうございました。

今度は、外部から並べ替え条件を指定した場合のソートについて教えてください。
外部からの指定は、開始位置、桁数、並び順で複数指定可能にしたいです。

外部からの指定が動的に変化するので、
sort条件の部分が動的に変更する必要があります。
そもそもこんな事が出来るのでしょうか?

indata = Array.new
indata.push("001YAMADA 080A") #番号,名前,点数,クラス
indata.push("015TANAKA 065B")
indata.push("010YAMAMOTO 090A")
indata.push("004UETA 070B")
puts indata
puts

s = "16,1,A,13,3,D" #外部からソートキー指定 =>クラス(昇順)、点数(降順)


sortkey_ary = s.split(',').each_slice(3).to_a #カンマで分割し2次元テーブル化

puts "class(A),tensu(D)"

puts indata.sort {|a, b|
(a[16,1] <=> b[16,1]).nonzero? ||
(b[13,3] <=> a[13,3])
}
puts
Ruby 初心者スレッド Part 54
824 :811[]:2014/05/22(木) 14:40:05.83 ID:r8fE+JcD
s = "16,1,D,13,3,A" の場合は、下のようになって欲しい
puts indata.sort {|a, b|
(b[16,1] <=> a[16,1]).nonzero? ||
(a[13,3] <=> b[13,3])
}
Ruby 初心者スレッド Part 54
828 :811[]:2014/05/22(木) 17:36:16.90 ID:r8fE+JcD
>>827
まだ理解できてないけど、動きました。
ありがとうございました。

それにしても
こんな短いプログラムで書けるとは・・・


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。