Javascript 获取月对象中两天之间的所有日和
日期将有2个输入,输出应如下所示 假设两个输入分别为2020-01-01和2020-02-23Javascript 获取月对象中两天之间的所有日和,javascript,date,Javascript,Date,日期将有2个输入,输出应如下所示 假设两个输入分别为2020-01-01和2020-02-23 { "2021-01" : 31, "2021-02" : 23, } 第二件事是,如果一个月包括它的所有日子,它应该表示为: { "2021-01" : { days: 31, isAll : true },
{
"2021-01" : 31,
"2021-02" : 23,
}
第二件事是,如果一个月包括它的所有日子,它应该表示为:
{
"2021-01" : {
days: 31,
isAll : true
},
"2021-02" : {
days: 23,
isAll : false
},
}
我该怎么做呢?您可以使用
.reduce
迭代对象条目
,并为每个键
,保存一个对象,该对象的天数为天
,以及它是否是最后一天:
const\u getLastDay=date=>{
常量[年,月]=日期分割('-');
返回新日期(年、月、0)。getDate();
}
常量getDates=(日期1,日期2)=>{
常量数据={
[`${date1.getFullYear()}-${('0'+(date1.getMonth()+1)).slice(-2)}`]:date1.getDate(),
[`${date2.getFullYear()}-${('0'+(date2.getMonth()+1)).slice(-2)}`]:date2.getDate()
};
return Object.entries(data).reduce((acc,[日期,天数])=>{
acc[date]={天,isAll:{getLastDay(date)==天};
返回acc;
}, {});
}
控制台日志(getDates(新日期(“2021-01-31”)、新日期(“2021-02-23”)代码>谢谢你的回答,解释得很好。但我如何从2个日期对象中获取您声明为“数据”的对象?@MertDoğruca我更新了答案,首先构建对象数据
,然后将其缩减为结果输出