Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用其他数组构造多维数组_Javascript_Angularjs - Fatal编程技术网

Javascript 用其他数组构造多维数组

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

我正在使用外部服务来获取组织的事件(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","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吗?我提出了一个新问题来解决这个问题: