Javascript 如何使用角度向现有动态响应添加新对象

Javascript 如何使用角度向现有动态响应添加新对象,javascript,angular,typescript,javascript-objects,Javascript,Angular,Typescript,Javascript Objects,我从服务器上得到这个动态响应。在这里,我想把我的mapD数据推送到mapData(即动态数据) 我将上述动态响应存储为this.mapData=res.Data 我也有一个静态数据 public mapD:any=[{ Name: "mad", OrderState: "2", latitude: "39.6868", longitude: "83.2185" }] 我希望上面的静态对象包含动态对象,这样我将总共得到2个对象-我使用push方法,但无法使

我从服务器上得到这个动态响应。在这里,我想把我的mapD数据推送到mapData(即动态数据)

我将上述动态响应存储为this.mapData=res.Data

我也有一个静态数据

public mapD:any=[{
    Name: "mad",
    OrderState: "2",
    latitude: "39.6868",
    longitude: "83.2185"
    }]
我希望上面的静态对象包含动态对象,这样我将总共得到2个对象-我使用push方法,但无法使用push方法获取数据

this.mapD.push(this.mapData)


并且我使用
mapData
保存响应并在模板中循环它

您不能将一个数组推入另一个数组。改用
排列

this.mapD.push(...this.mapData);
或array.concat,如果无法使用ES6:

this.mapD = this.mapD.concat(this.mapData);

您可以将
mapD
声明为
mapData
数组,以便以后可以访问对象属性。一个简单的例子:

mapData: Array<any>
mapD: Array<any>

getResponse() {
   this.yourApiService.subscribe(
      (response: Array<any>) => {
          this.mapDdata = response;
          // Loop through the response array here or push first item
          this.mapD.push(reponse[0]);
      }
   );
}
mapData:Array
mapD:数组
getResponse(){
此为.yourApiService.subscribe(
(响应:数组)=>{
this.mapDdata=响应;
//在此处循环响应数组或推送第一项
这个.mapD.push(response[0]);
}
);
}

现在有了
mapD
,它是数组类型,包含映射的
mapData
对象。这允许您访问存储在该数组中的对象的属性。

我不确定您的意思,但如果您想将返回的数组
mapData
合并到现有的
mapD
,可以尝试以下操作:

Array.prototype.push.apply(this.mapD, this.mapData);
它将结果存储在
this.mapD


希望这有帮助,

我将总共得到2个对象
-你是说mapD数组中有两个对象吗?让newArr=[…firstArray,…secondArray]@mplungjan没有在mapDataYou收到一个数组。如果数组始终只有一个uniqe元素,则必须使用扩展运算符执行此操作。mapD.pus(this.mapData[0])我得到以下错误--无法读取未定义的属性“apply”--我使用mapData保存响应并在templatethis.mapData中循环它初始化映射数据,如下所示。mapData=[];您可以像这样使用安全调用
this.mapD.push(…(this.mapData | |[])我在mapData中存储我的响应我已经更新了上面的内容,将您的响应添加到mapData下。如果您希望将响应附加到静态数组中,您应该在响应之后立即推送它。
Array.prototype.push.apply(this.mapD, this.mapData);