gpt4 book ai didi

javascript - 将对象数组转换为按月和年分组的对象数组

转载 作者:行者123 更新时间:2023-11-28 14:22:14 24 4
gpt4 key购买 nike

您好,我正在尝试转换对象数组并按月份和年份对它们进行分组。我已经实现了转变,我得到了我需要的几个月和几年,但并不是所有的项目都会进入我的小组。

我的代码:

const data = [
{text:"Lorem 1 ipsum", date:"Thu Feb 21 2019 11:44:24 GMT+0000 (GMT)"},
{text:"Lorem 2 ipsum", date:"Thu Feb 21 2019 11:44:24 GMT+0000 (GMT)"},
{text:"Lorem 3 ipsum", date:"Thu Mar 21 2019 11:44:24 GMT+0000 (GMT)"},
]
const texts = [];
const formattedData = data.reduce((acc, { date, text }) => {
const dateObj = new Date(date);
const monthYearFormat = dateObj
.toLocaleString("en-us", { month: "long", year: 'numeric' });

if(acc[monthYearFormat]) {
texts.push(text);

acc[monthYearFormat] = {
text: texts
}
} else {
acc[monthYearFormat] = {
text: [text]
}
}

return acc;
}, {})

console.log(formattedData)

我得到的结果是:

{
February 2019: {
text: ['Lorem 2 ipsum']
},
March 2019: {
text: ['Lorem 3 ipsum']
}
}

它似乎正在取代我的第一个对象。二月还应该包含“Lorem 1 ipsum”,如下所示:

{
February 2019: {
text: ['Lorem 1 ipsum', 'Lorem 2 ipsum']
},
March 2019: {
text: ['Lorem 3 ipsum']
}
}

有什么想法我在这里出错了吗?预先感谢您。

最佳答案

而不是

if(acc[monthYearFormat]) {
texts.push(text);

acc[monthYearFormat] = {
text: texts
}
}

尝试

if(acc[monthYearFormat]) {
acc[monthYearFormat].text.push(text);
}

关于javascript - 将对象数组转换为按月和年分组的对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54808888/

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