Мне трудно понять, как решить эту проблему, по сути, у меня есть два массива, которые выглядят так:
Первый массив:
days_to_report
#=> [{:date=>Fri, 01 Apr 2011},
#=> {:date=>Sat, 02 Apr 2011},
#=> {:date=>Sun, 03 Apr 2011},
#=> {:date=>Mon, 04 Apr 2011}]
Второй массив:
tracks_by_day
#=> [{:date=>Mon, 04 Apr 2011, :count=>905, :percentage=>13.205895228367137},
#=> {:date=>Sat, 02 Apr 2011, :count=>6745, :percentage=>98.4240478622501},
#=> {:date=>Fri, 01 Apr 2011, :count=>6853, :percentage=>100.0}]
Даты, являющиеся Date
объектами в данном случае.
Поэтому я хочу объединить их так, чтобы для каждого элемента в первом массиве (days_to_report
) имелосьданные, которые есть во втором массиве, например, идеальный результат: (обратите внимание на данные для даты для Sun, 3 апреля 2011 г.)
[{:date=>Mon, 04 Apr 2011, :count=>905, :percentage=>13.205895228367137},
{:date=>Sun, 03 Apr 2011, :count=>0, :percentage=>0},
{:date=>Sat, 02 Apr 2011, :count=>6745, :percentage=>98.4240478622501},
{:date=>Fri, 01 Apr 2011, :count=>6853, :percentage=>100.0}]
Обратите внимание, что второй элемент массива имеет ноль длязначения, потому что :date
не было в хэше для массива tracks_by_day
... есть мысли о том, как этого добиться?Похоже на функциональность, предоставленную в zip
, или что-то в этом роде, но мне нужно сопоставить ключи, чтобы увидеть, существуют ли они, и заполнить их значения нулями, если их нет.правильно, еще раз спасибо, ребята!Дай пять!