从对象数组中获取属性的值

时间:2017-01-07 14:40:19

标签: arrays angular typescript

我正在用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,...]

1 个答案:

答案 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'),
  );
}