JS如何根据元素的值(日期)将数组划分为多个子数组?

问题描述 投票:0回答:1

我有一个包含一些对象的数组。这些对象具有“日期”字段。

现在,我想将此数组分为几个。每个子数组应仅包含日期在特定范围内的对象(例如,第一个子数组包含日期从05.05.2017到02.12.2018,下一个-日期从03.12.2018到12.12.2020,依此类推)。范围已指定并已知。

如何使用JS?

javascript dynamic-arrays
1个回答
0
投票

您可以在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);
© www.soinside.com 2019 - 2024. All rights reserved.