我有一个包含一些对象的数组。这些对象具有“日期”字段。
现在,我想将此数组分为几个。每个子数组应仅包含日期在特定范围内的对象(例如,第一个子数组包含日期从05.05.2017到02.12.2018,下一个-日期从03.12.2018到12.12.2020,依此类推)。范围已指定并已知。
如何使用JS?
您可以在while
循环中创建日期的子数组:
createDateRange = (startDate, stopDate) => {
let dates = [];
startDate = new Date(startDate);
stopDate = new Date(stopDate);
while (startDate < stopDate){
dates.push(startDate);
startDate = new Date(startDate.setDate(startDate.getDate() + 1));
};
return dates;
}
示例:
let dateRanges = [];
let ranges = ['2017-02-01 2017-02-26'];
createDateRange = (startDate, stopDate) => {
let dates = [];
startDate = new Date(startDate);
stopDate = new Date(stopDate);
while (startDate < stopDate){
dates.push(startDate);
startDate = new Date(startDate.setDate(startDate.getDate() + 1));
};
return dates;
}
dateRanges.push(createDateRange(...ranges[0].split(' ')));
console.log(dateRanges);