根据日期集动态创建间隔

时间:2020-05-02 12:00:03

标签: javascript jquery

如果您使用ajax接收日期列表,如何从中动态创建日期间隔?假设您的列表是:

var arrdates=['01/02/2014','06/05/2014','24/09/2014','05/06/2018','26/09/2019','27/09/2019','28/12/2019'];

您希望得到一个如下所示的结果:

console.log("Date intervals are 01/02/2014-24/09/2014 and 05/06/2018 and 26/09/2019-28/12/2019");

像这样甚至有可能吗?

1 个答案:

答案 0 :(得分:0)

这是您的方法。

var arrdates=['01/02/2014','06/05/2014','24/09/2014','05/06/2018','26/09/2019','27/09/2019','28/12/2019'];
let yearsMap = new Map();
arrdates.forEach(e=>{
  let y = (new Date(e.split("/").reverse().join("-")/*convert to ISO date string*/)).getFullYear();
  let current = yearsMap.get(y);
  yearsMap.set(y, current ? [...current,e] : [e]);
})
let years = [...yearsMap.values()].map(e=>e.join("-")); //might want to sort the dates before joining
console.log(years);