Cómo crear una matriz de intervalos de fechas a partir de una matriz de fechas estáticas en JavaScript

Trabajo con objetos Moment y subrayado. Lo escribí yo mismo.

// Crear matrices
var coll_dateIntervals = [];
var arr_temp = [];
_.each (collDates, function (moment_date, index, list) {
// Diferencia de días en # de días
var diff = Math.abs (collDates [index] .diff (collDates [index + 1], “días”));

// Añadir begin_date
arr_temp.push (moment_date);
// Verifica la diferencia de fechas en días.
if (diff <= 1 && diff! == undefined) {
// Si la diferencia es 1, entonces agregue la fecha a la matriz temporal
arr_temp.push (moment_date);
// Si es más de 1 día, o el último objeto
} else if (diff> 1 && diff || diff === undefined) {
// Almacenar el intervalo en un objeto
var obj_dateInterval = {start_date: arr_temp [0] .format (“DD / MM / AAAA”), end_date: arr_temp [arr_temp.length – 1] .format (“DD / MM / AAAA”)};
coll_dateIntervals.push (obj_dateInterval);

// Vaciar la matriz para comenzar el nuevo ciclo
arr_temp = [];
};
});
console.log (coll_dateIntervals);

// return coll_dateIntervals;