Javascript 用其他数组构造多维数组
我正在使用外部服务来获取组织的事件(GetEvents)。返回内容的示例:Javascript 用其他数组构造多维数组,javascript,angularjs,Javascript,Angularjs,我正在使用外部服务来获取组织的事件(GetEvents)。返回内容的示例: { "Result":"success", "Key":"12345", "Data":[ {"ID":"GFDCV34","lastChangedDate":"2015-12-03 11:14:27"}, {"ID":"IDJHE23","lastChangedDate":"2015-12-03 15:17:47"}, {"ID":"KDJBD34","lastChang
{
"Result":"success",
"Key":"12345",
"Data":[
{"ID":"GFDCV34","lastChangedDate":"2015-12-03 11:14:27"},
{"ID":"IDJHE23","lastChangedDate":"2015-12-03 15:17:47"},
{"ID":"KDJBD34","lastChangedDate":"2015-12-03 05:25:11"}
]
}
接下来,我可以提取某个事件的详细信息(GetEventDetails)。事件的ID作为数据参数是必需的。我做了一个函数getdetails(id)返回详细信息的代码>。
例如,对于getdetails('KDJBD34')
,它给出了:
{
"Result":"success",
"Key":"52523",
"Data":[
{
"ID": "KDJBD34",
"name": "Name of event 3",
"date": "date of event 3",
"location": "location of event 3",
"lastChangedDate":"2015-12-03 05:25:11"
}
]
}
我想构建一个包含所有事件及其详细信息的数组,如下所示:
{
"Result": "success",
"Key": "12345",
"Data":[
{
"ID": "GFDCV34",
"name": "Name of event 1",
"date": "date of event 1",
"location": "location of event 1",
"lastChangedDate": "2015-12-03 11:14:27"
},
{
"ID": "IDJHE23",
"name": "Name of event 2",
"date": "date of event 2",
"location": "location of event 2",
"lastChangedDate": "2015-12-03 15:17:47"
},
{
"ID": "KDJBD34",
"name": "Name of event 3",
"date": "date of event 3",
"location": "location of event 3",
"lastChangedDate":"2015-12-03 05:25:11"
}
]
}
有谁能给我指出正确的方向吗?您应该操作第一个结果并附加新检索到的属性
var res = {
"Result": "success",
"Key": "12345",
"Data": [{
"ID": "GFDCV34",
"lastChangedDate": "2015-12-03 11:14:27"
}, {
"ID": "IDJHE23",
"lastChangedDate": "2015-12-03 15:17:47"
}, {
"ID": "KDJBD34",
"lastChangedDate": "2015-12-03 05:25:11"
}]
};
var tmp;
res.Data.map(function(val,i){
tmp = getdetails(val.ID);
Object.keys(tmp.Data[0]).map(function(v,j){
val[v] = tmp.Data[0][v];
});
});
var事件=[];push(getdetails('KDJBD34')代码>谢谢你的回复。我不能让它工作。。。可能是因为我实际上使用getdetails('KDJBD34')获取会议的详细信息
而不是getdetails('KDJBD34')
。因此我尝试将代码更新为:var-tmp;res.Data.map(函数(val,i){getdetails(val.ID).then(函数(Data){tmp=JSON.parse(Data);Object.keys(tmp.Data).map(函数(v,j){val[v]=tmp.Data[v];});},函数(error){console.log(error)};})代码>,但这样做,细节不在那里。。。有什么想法吗?@双筒望远镜你能给我们一个样本JSFIDLE吗?我提出了一个新问题来解决这个问题: