gpt4 book ai didi

javascript - 用两个日期之间的日期填充对象数组

转载 作者:行者123 更新时间:2023-11-30 14:14:21 25 4
gpt4 key购买 nike

我有一个对象数组,例如:

const dates = [
{date: "Jul 06 2018", count: 10},
{date: "Jul 08 2018", count: 1},
{date: "Jul 10 2018", count: 120},
];

我正在使用 eachDayformat date-fns的功能生成并“回填”存在于给定数组的第一个日期和最后一个日期之间的所有日期。

eachDay(
dates[0].date,
dates.slice(-1)[0].date,
)
.map(d => ({
x: d.dateCollected,
y: dates
.filter(e => d.dateCollected === format(e, 'MMM DD YYYY')),
}));

该代码返回所有日期,但我无法将原始数组中的 count 值获取到“回填”数组中。

预期结果:

const result =  = [
{x: "Jul 06 2018", y: 10},
{x: "Jul 07 2018", y: 0},
{x: "Jul 08 2018", y: 1},
{x: "Jul 09 2018", y: 0},
{x: "Jul 10 2018", y: 120},
];

最佳答案

您可以通过按日期创建计数查找来简化事情:

const {eachDay, format} = dateFns;

const dates = [
{date: "Jul 06 2018", count: 10},
{date: "Jul 08 2018", count: 1},
{date: "Jul 10 2018", count: 120}
];

const counts = dates.reduce((memo, {date, count}) => {
memo[date] = count;
return memo;
}, {});

const result = eachDay(
dates[0].date,
dates.slice(-1)[0].date
)
.map(d => {
const x = format(d, "MMM DD YYYY");
return {x, y: counts[x] || 0};
})

console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/date-fns/1.30.1/date_fns.js"></script>

关于javascript - 用两个日期之间的日期填充对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53842701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com