如何使用typescript(Angular2)

时间:2017-05-01 20:41:21

标签: json angular typescript

我是Angular2的新手,我正在尝试遍历一个JSON对象,我从GET请求中回来但是无法解决它。

我的JSON对象:

{
    Results: [{
        Time: "2017-02-11T08:15:01.000+00:00",
        Id: "data-mopdsjkajskda",
        AuthorId: "58fSDNJD"
    }, {
        Time: "2017-03-11T06:23:34.000+00:00",
        Id: "data-2371212hjb1",
        AuthorId: "43555HHHJ"
    }, {
        Time: "2017-04-11T07:05:11.000+00:00",
        Id: "data-kjskdha22112",
        AuthorId: "XDSJKJSDH"
    }]
}

我的Angular脚本的一部分:

interface res {
    Time: string;
    Id: string;
    AuthorId: string;
}
export class AppComponent {
    results: res;
    constructor(private _httpservice: HTTPService) {}
    this._httpservice.getQuery().subscribe(
        data => {
            this.results = data.Results
        },
        error => console.log(error),
        () => console.log('Done')
    );
}

我确实得到了数据 - 这很棒。但是,我想将Ids推入一个数组。在Javascript中我会这样做:

var ids = [];

for (i = 0; i < data.Results.length; i++) {
    ids.push(data.Results[i].Id)
}

推送后的数组:

ids = ['data-mopdsjkajskda', 'data-2371212hjb1', 'data-kjskdha22112'];

我正在努力寻找一种方法来获得与Angular2相同的结果。任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:16)

ECMAScript 6引入了let语句,可以使用let in for语句。如下所示

var ids:string = [];

for(let result of this.results){
   ids.push(result.Id);
}

答案 1 :(得分:14)

假设你的GET请求中的json对象看起来像你上面发布的那个,只需执行:

let list: string[] = [];

json.Results.forEach(element => {
    list.push(element.Id);
});

或者我错过了阻止你这样做的事情?