Skip to content

Commit

Permalink
Merge pull request DKirwan#37 from zookzook/master
Browse files Browse the repository at this point in the history
Make countForDate very fast.
  • Loading branch information
DKirwan committed May 2, 2018
2 parents 9c383f7 + ac7ab8b commit 337b431
Showing 1 changed file with 12 additions and 8 deletions.
20 changes: 12 additions & 8 deletions src/calendar-heatmap.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ function calendarHeatmap() {
var now = moment().endOf('day').toDate();
var yearAgo = moment().startOf('day').subtract(1, 'year').toDate();
var startDate = null;
var counterMap= {};
var data = [];
var max = null;
var colorRange = ['#D8E6E7', '#218380'];
Expand All @@ -33,6 +34,15 @@ function calendarHeatmap() {
chart.data = function (value) {
if (!arguments.length) { return data; }
data = value;

counterMap= {};

data.forEach(function (element, index) {
var key= moment(element.date).format( 'YYYY-MM-DD' );
var counter= counterMap[key] || 0;
counterMap[key]= counter + element.count;
});

return chart;
};

Expand Down Expand Up @@ -248,14 +258,8 @@ function calendarHeatmap() {
}

function countForDate(d) {
var count = 0;
var match = chart.data().find(function (element, index) {
return moment(element.date).isSame(d, 'day');
});
if (match) {
count = match.count;
}
return count;
var key= moment(d).format( 'YYYY-MM-DD' );
return counterMap[key] || 0;
}

function formatWeekday(weekDay) {
Expand Down

0 comments on commit 337b431

Please sign in to comment.