Javascript 如何使用角度向现有动态响应添加新对象
我从服务器上得到这个动态响应。在这里,我想把我的mapD数据推送到mapData(即动态数据) 我将上述动态响应存储为this.mapData=res.Data 我也有一个静态数据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方法,但无法使
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);