Ruby 初心者スレッド Part 52
■ このスレッドは過去ログ倉庫に格納されています
0333デフォルトの名無しさん
2013/08/30(金) NY:AN:NY.AN配列の中身はすべてハッシュで{:type=>"", text:=>""}という中身です。
:typeは、A, B, Cの3種類だけです。
今この巨大配列を
α:typeがAとCの配列
β:typeがBとCの配列
に分割したうえで、
αは、:typeがAの要素と:typeがAの要素からインデックスが±3以内の:typeがCの要素のみ
βは、:typeがBの要素と:typeがBの要素からインデックスが±3以内の:typeがCの要素のみ
にしたいんです。
alpha_tmp = big.dup.delete_if do |ele| if ele[:type] == B end
beta_tmp = big.dup.delete_if do |ele| if ele[:type] == A end
alpha = []
is_within = 0
alpha.tmp.each.do |ele, index|
if ele == A
alpha << A
is_within = index
else
is_within -4 < index && index < is_within + 4
alpha << A
end
alpha = alpha.uniq
書いてみましたが・・・なんか糞です。・・・もっと上手い書き方はないものでしょうか?
■ このスレッドは過去ログ倉庫に格納されています