我正在用TypeScript构建angular2应用程序,我遇到了一个问题(注意我是angular2和typescript中的菜鸟)。
问题与此相同:From an array of objects, extract value of a property as array但是因为我没有使用JavaScript,所以解决方案不是很有用(或者是吗?)
我从API获取JSON对象,只需将它们保存在数组中:
constructor(private namelistService: NameListService) { }
getAllDevices(){
this.namelistService.getDevices()
.subscribe(
data => this.devices = data,
error => console.log('Server error'),
);
}
也是我简单的服务:
constructor(private http:Http){}
getDevices(): Observable<any>{
return this.http.get("http://link-to-api")
.map( (res: Response) => res.json())
.catch((error: any) => Observable.throw(error.json().error || 'Server error'));
}
产生这样的对象(我删除了值):
{
"_id": "",
"info": {
"device_id": ,
"device_name": "",
"uid": "",
"firmware": "",
"hardware": "",
"description": ""
},
我想要做的就是从数组中的每个对象获取_id值并将其保存在单独的数组中: arr2 = [id1,id2,id3,id4,...]
答案 0 :(得分:0)
你可以在typescript代码中使用任何javascript代码,因为typescript被编译成javascript本身。
constructor(private namelistService: NameListService) { }
resultArray:any;
getAllDevices(){
this.namelistService.getDevices()
.subscribe(
(data) => {
this.devices = data;
this.resultArray = this.devices.map(function(a) {return a["_id"];});
},
error => console.log('Server error'),
);
}