Skip to content

Find missing day from array of dates javascript

I am getting an array of day dates from an API:

0:{date: "2016-11-17T00:00:00",…}
1:{date: "2016-11-18T00:00:00",…}
2:{date: "2016-11-19T00:00:00",…}
3:{date: "2016-11-21T00:00:00",…}
4:{date: "2016-11-22T00:00:00",…}
5:{date: "2016-11-23T00:00:00",…}

In this example the array is missing this date:

{date: "2016-11-20T00:00:00",…}

What is the best way to find a missing day from an array of dates in Javascript or Angular?

So that I later would be able to pass it to a datepicker as a disabled day.


Check this out:

  1. First you can sort the array (in case it is not so) using Array.prototype.sort

  2. Then use Array.prototype.reduce and a hash table to find the missing dates

Demo given in snippet below:

var array=[

var result = array.sort(function(a,b){
   return Date.parse( - Date.parse(;
  return function(p,c){
    var missingDaysNo = (Date.parse( - hash.prev) / (1000 * 3600 * 24);
    if(hash.prev && missingDaysNo > 1) {
      for(var i=1;i<missingDaysNo;i++)
        p.push(new Date(hash.prev+i*(1000 * 3600 * 24)));
    hash.prev = Date.parse(;
    return p;