【发布时间】:2019-07-26 00:30:00
【问题描述】:
我正在通过 REST 提取一个 JSON,其中包含一个包含一些字段和一些嵌套对象的对象数组。
我要创建的是来自嵌套 JSON 对象数组的分组摘要对象,其结构如下:
var data = [
{
"Id": 79,
"Date": "2019-02-17T00:00:00-07:00",
"StartTime": 1535385600,
"EndTime": 1535416200,
"Slots": [
{
"blnEmptySlot": false,
"strType": "B",
"intStart": 3600,
"intEnd": 5400,
"intUnixStart": 1535389200,
"intUnixEnd": 1535391000,
}
],
"OperationalUnit": 3,
"Created": "2019-01-31T11:23:29+02:00",
"StartTimeLocalized": "2019-02-17T10:00:00+02:00",
"EndTimeLocalized": "2019-02-17T19:00:00+02:00",
"_MetaData": {
"AttendeeInfo": {
"Id": 111,
"AttendeeDisplayName": "att_name1",
"AttendeeProfile": 406,
"Attendee": 406,
"Photo": "avatar_path"
},
"OperationalUnitInfo": {
"Id": 3,
"OperationalUnitName": "op_unit_name",
"Company": 1,
"CompanyName": "comp_name",
"LabelWithCompany": "comp_label"
},
}
},
{
"Id": 80,
"Date": "2019-02-17T00:00:00-07:00",
"StartTime": 1535385600,
"EndTime": 1535416200,
"Slots": [
{
"blnEmptySlot": false,
"strType": "B",
"intStart": 3600,
"intEnd": 5400,
"intUnixStart": 1535389200,
"intUnixEnd": 1535391000,
}
],
"OperationalUnit": 3,
"Created": "2019-01-31T11:23:29+02:00",
"StartTimeLocalized": "2019-02-17T10:00:00+02:00",
"EndTimeLocalized": "2019-02-17T19:00:00+02:00",
"_MetaData": {
"AttendeeInfo": {
"Id": 112,
"AttendeeDisplayName": "att_name2",
"AttendeeProfile": 407,
"Attendee": 407,
"Photo": "avatar_path"
},
"OperationalUnitInfo": {
"Id": 3,
"OperationalUnitName": "op_unit_name",
"Company": 1,
"CompanyName": "comp_name",
"LabelWithCompany": "comp_label"
},
}
}
];
总体目的是创建一个包含开始和结束日期时间的事件对象列表、一个 LabelWithCompany 字符串(深层嵌套对象)以及一个按 OperationalUnitName 以及开始和结束时间分组的所有参加者的列表。
例子:
[
{
"2019-02-17T00:00:00-08:00": {//Date
"2019-02-17T10:00:00+02:00": {//StartTimeLocalized
"2019-02-17T19:00:00+02:00": {//EndTimeLocalized
"[NYC] Network - Solutions": {//LabelWithCompany
"attendees": [
"att_name1",//AttendeeDisplayName
"att_name2" //AttendeeDisplayName
]
}
}
}
}
}
]
我假设 map 和 reduce 是必要的功能,但我在执行多个嵌套 reduce 时遇到了麻烦。 任何其他关于如何将这些对象聚合成包含每个会话的所有参与者的聚合格式的建议。
【问题讨论】:
-
你从哪里得到
'att1'等等,从哪里来的?为什么你有一个数组作为结果集? -
你不需要多个
reduce,一个就够了。 -
请添加反映给定数据的结果。
-
@NinaScholz 我已经编辑了输入和输出示例。我希望现在更清楚了。
标签: javascript json javascript-objects reducers