使用reduce函数可以将一个数组中的元素按照某个条件进行分组。在这个问题中,我们可以使用reduce函数来生成date_from和date_to。
首先,我们需要一个包含日期的数组,假设这个数组为dates。我们可以使用reduce函数来遍历这个数组,并根据日期的不同进行分组。
const dates = [
{ date: '2022-01-01' },
{ date: '2022-01-02' },
{ date: '2022-01-03' },
{ date: '2022-01-04' },
{ date: '2022-01-05' },
{ date: '2022-01-06' },
{ date: '2022-01-07' },
{ date: '2022-01-08' },
{ date: '2022-01-09' },
{ date: '2022-01-10' }
];
const result = dates.reduce((acc, curr) => {
const date = new Date(curr.date);
const dateString = date.toDateString();
if (!acc[dateString]) {
acc[dateString] = {
date_from: curr.date,
date_to: curr.date
};
} else {
acc[dateString].date_to = curr.date;
}
return acc;
}, {});
console.log(result);
运行以上代码,我们可以得到以下结果:
{
'Sat Jan 01 2022': { date_from: '2022-01-01', date_to: '2022-01-01' },
'Sun Jan 02 2022': { date_from: '2022-01-02', date_to: '2022-01-02' },
'Mon Jan 03 2022': { date_from: '2022-01-03', date_to: '2022-01-03' },
'Tue Jan 04 2022': { date_from: '2022-01-04', date_to: '2022-01-04' },
'Wed Jan 05 2022': { date_from: '2022-01-05', date_to: '2022-01-05' },
'Thu Jan 06 2022': { date_from: '2022-01-06', date_to: '2022-01-06' },
'Fri Jan 07 2022': { date_from: '2022-01-07', date_to: '2022-01-07' },
'Sat Jan 08 2022': { date_from: '2022-01-08', date_to: '2022-01-08' },
'Sun Jan 09 2022': { date_from: '2022-01-09', date_to: '2022-01-09' },
'Mon Jan 10 2022': { date_from: '2022-01-10', date_to: '2022-01-10' }
}
在这个结果中,每个日期都作为一个键,对应的值是一个包含date_from和date_to的对象。这样我们就成功地使用reduce函数生成了date_from和date_to。
关于reduce函数的更多信息,你可以参考腾讯云的文档:reduce函数文档
领取专属 10元无门槛券
手把手带您无忧上云