根据日期数组创建年和月的唯一对象

阿科洛斯

我正在尝试根据日期数组创建一个独特的年份和月份对象,请参阅下面的意思:

const availableDates = ["26-01-2022", "30-01-2022", "02-03-2022", "16-04-2022", "01-01-2023"]; // This list will be really long, just an example

我想使用 availableDates 创建一个像下面这样的独特对象,但在试图弄清楚时遇到问题:

const uniqueDates = {
  "2022": ["Jan", "Mar", "Apr"],
  "2023": ["Jan"]
};

如果您有更好的方法来实现这一目标,请告诉我!

提前致谢

特里·伦诺克斯

我们可以使用 Array.reduce 来创建所需的地图,并使用 Set 来确保我们每年只保留一组唯一的月份。

const availableDates = ["26-01-2022", "30-01-2022", "02-03-2022", "16-04-2022", "01-01-2023", "01-01-2023"];

const months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
const uniqueDates = availableDates.reduce((acc, dt) => { 
    let [day, month, year] = dt.split("-");
    acc[year] = [...new Set(acc[year] || []).add(months[month - 1])];
    return acc;
}, {})


console.log("Unique object:", uniqueDates)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章