使用来自对象数组的ES 6的精确数组

时间:2018-03-25 14:51:55

标签: javascript angular ecmascript-6

我正在使用Angular 5 http Client从API获取数据。这是我的订阅部分

vehicles: Vehicle[];
getVehicleList() {
this.vehicleService.getVehicleData()  
.subscribe(data => { 
    this.vehicles = data
    console.log(JSON.stringify(data));} 
)
}

车辆界面

  export interface Vehicle {
    type: string;
 } 

我得到的JSON看起来像这样

       {
  "data": [
    {
      "type": "bus"
    },
    {
      "type": "truck"
    },
    {
      "type": "car"
    }
  ],
  "_metadata": null
}

我想使用map函数从上面获取数组。有人可以帮我这个吗?

2 个答案:

答案 0 :(得分:0)

我不确定你在这里问什么,但正如Khauri指出的那样,你可以使用data.data来获取数据数组。 如果你想在它上面使用地图,它将如下所示:

data.data.map(element => console.log(element.type))

这将是pritnt

  

总线   卡车   车

[编辑]如果你只想获得数组,你应该只使用data.data 假设您正在使用打字稿,您需要在Vehicule界面添加一个data字段,这是一个数组。

答案 1 :(得分:0)

在我看来,之前评论的解决方案应该有效。

请确保您将代码更改为以下内容:

    vehicles: Vehicle[];
    getVehicleList() {
        this.vehicleService.getVehicleData()
        .subscribe(data => { 
             this.vehicles = data.data;
        })
    }