配列の欠落したデータを補完したい
こんにちは。
Ruby のプログラムで、日付と数値が入った配列のうち欠落した要素に対して補完をしたいと思っております。
開始・終了日が決まっていますので、その間のデータがなければ配列に値を挿入、その後ソートして出力しております。
目的は下記のプログラムで実現できているのですが、 Ruby っぽさがないと思っております。 Ruby っぽさを求めるならこうだ!というのがあればよろしくお願いします。
require "date"
arr = [
["2015-03-01", 200],
["2015-03-02", 200],
["2015-03-04", 200],
["2015-03-05", 200],
["2015-03-06", 200],
]
begin_date = "2015-03-01"
end_date = "2015-03-07"
(Date.parse(begin_date)..Date.parse(end_date)).each do |date|
unless arr.find{|a| a.first == date.to_s} then
arr << [date.to_s, nil]
end
end
puts arr.sort_by{|a| a.first}