如何将[object Object]转换为数组?

时间:2016-07-20 13:18:56

标签: arrays object angular ngfor

我将API调用中的一些值显示到ngFor指令中。我试图将数据转换为数组。这是我从服务器获得的:

Data from the server

我订阅了这样的数据:

  onVideoClick(video_id){
this._dashboardService.getVideoData(video_id)
    .subscribe(videoData=> {
      if (videoData.ok) {
        console.log(videoData.json());
        this.videoData= videoData.json();
      } else {
        console.log('pas de données vidéos');
      }
  });

}

我以这种方式显示我的数据:

 <tr>
    <th *ngFor="let vD of videoData">{{vD.attr_libelle}}</th>
 </tr>

如何将此Object转换为数组?

2 个答案:

答案 0 :(得分:1)

您可以为此实现自定义管道。这是一个从对象条目创建数组的示例:

@Pipe({name: 'keys'})
export class KeysPipe implements PipeTransform {
  transform(value, args:string[]) : any {
    let keys = [];
    for (let key in value) {
      keys.push({key: key, value: value[key]);
    }
    return keys;
  }
}

并使用它:

<span *ngFor="#entry of content">           
  Key: {{entry.key}}, value: {{entry.value}}
</span>

不要忘记将管道添加到要使用它的组件的pipes属性中。

答案 1 :(得分:0)

我会使用Lodash库进行此转换。

onVideoClick(video_id) {
    this._dashboardService.getVideoData(video_id)
        .subscribe(videoData => {
            if (videoData.ok) {
                console.log(videoData.json());
                this.videoData = _.values(videoData.json());
            } else {
                console.log('pas de données vidéos');
            }
        });
}

有关文档,请参阅here