【发布时间】:2018-06-02 06:39:58
【问题描述】:
我正在使用 React Native Calendars 并尝试为议程组件构建我的数据。
预期的数据结构是(一个对象)
{
'2012-05-22': [{text: 'item 1 - any js object'}],
'2012-05-23': [{text: 'item 2 - any js object'}],
'2012-05-24': [],
'2012-05-25': [{text: 'item 3 - any js object'},{text: 'any js object'}],
}`
从我的 api 获取事件时,事件以以下格式返回(对象数组)`
let eventsFetchedFromApi = [
{startDateTime:"2018-02-01T11:10:43", comments: "First Event"},
{startDateTime:"2018-03-01T11:12:43", comments: "Third Event"},
{startDateTime:"2018-02-01T11:18:43", comments: "Second Event"},
]`
我已经设法使用以下代码将我的对象数组转换为一个对象(不幸的是,它的可读性不是很好,至少对我来说不是)。
let transformedEvents = Object.assign(...eventsFetchedFromApi.map(({ startDateTime, comments }) => ({ [startDateTime.substring(0, 10)]: [{comments: [comments]}] })));
“transformedEvents”的结构是(几乎在那里)
{
"2018-02-01":[{"comments": ["First Event"]}],
"2018-03-01":[{"comments": ["Third Event"]}]
}
如上所示,仅显示 3 个事件中的 2 个。如果事件具有相同的日期,则只会显示一个。我想要的输出是
{
"2018-02-01":[{"comments": "First Event"}, {"comments": "Second Event"}],
"2018-03-01":[{"comments": "Third Event"}]
}
**我需要将具有相同日期的事件组合在一起。任何人都可以帮助我获得我想要的数据结构吗?我不知道如何解决这个问题。谢谢**
【问题讨论】:
-
您想要的输出在
"2018-02-01"中具有第二个事件,但在eventsFetchedFromApi中,第二个事件具有startDateTimeof"2018-03-01T...? -
我的错!愚蠢的混淆。
标签: javascript arrays react-native javascript-objects