Javascript 需要帮助查找我的日期范围创建有什么问题吗

Javascript 需要帮助查找我的日期范围创建有什么问题吗,javascript,momentjs,lodash,Javascript,Momentjs,Lodash,我使用Lodash和Momentjs创建具有以下结构的JSON日期范围: {天:[],月:[]} 问题是: 目前已经创建了日期,但是创建的日期超出了需要,有很多重复的日期 此问题适用于月数组和日数组 这个方法使用了2天,但找不到为什么不起作用 var startDate = moment(); var endDate = moment().add(61, 'days'); var months = []; var range = {}; range.days = []; range.months

我使用Lodash和Momentjs创建具有以下结构的JSON日期范围: {天:[],月:[]}

问题是:

目前已经创建了日期,但是创建的日期超出了需要,有很多重复的日期 此问题适用于月数组和日数组 这个方法使用了2天,但找不到为什么不起作用

var startDate = moment();
var endDate = moment().add(61, 'days');
var months = [];
var range = {};
range.days = [];
range.months = [];
var currDate = startDate.clone().startOf('day');
var lastDate = endDate.clone().startOf('day');

while (currDate.add(1, 'days').diff(lastDate) < 0) {
  var month = {};
  month.name = currDate.clone().format('MMMM');
  month.year = currDate.clone().format('YYYY');
  var currentMonthDaysInTotal = moment(month.year + "-" + moment().month(currDate), "YYYY-MM").daysInMonth();
  var daysIndex = 1;
  while (daysIndex <= currentMonthDaysInTotal) {
    var newDateForList = moment([month.year, moment().month(month.name).format('M'), daysIndex]);
    if (newDateForList >= startDate && newDateForList <= endDate) {
      range.days.push(newDateForList);
    }
    daysIndex++;
  }
  if (months.length === 0) {
    months.push(month);
  }
  //regarder avec mitch
  if (_.findIndex(range.months, function(o) {
      return o.name !== month.name;
    }) === -1) {
    range.months.push(month);
  }
}
console.log(range);
下面是一个JSFiddle,其中包含我的代码,用于我尝试执行的操作:
这是否符合您的要求

var startDate=力矩; var endDate=moment.add61,“天”; var月数=[]; 变量范围={}; range.days=[]; range.months=[]; var currDate=startDate.clone.startOf'day'; var lastDate=endDate.clone.startOf'day'; var monthYear=未定义; 而currDate.add1“天”.difflastDate<0{ range.days.pushcurrDate.clone; var month=currDate.clone.format'MMMM', 年份=currDate.clone.format'YYYY'; 如果月份.concat年!==monthYear{ 射程{ 姓名:年月日, 年份:年份 }; } monthYear=月份。具体年份; }
console.logrange;嗨,约瑟夫,你到底想要实现什么?为什么范围是一个数组?我认为你所需要的可能比this@w3jimmy我必须得到这样一个数组,因为我必须填充这样一个表:我希望在上面的元素中有月,在下面的元素中有天,用于月。这正是我想要做的。谢谢你帮助我:D!没问题!您可能需要将startDate设置为矩。减去1,‘天’;如果你想包括今天的日期。