我正在尝试根据日期数组创建一个独特的年份和月份对象,请参阅下面的意思:
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] 删除。
我来说两句