web-dev-qa-db-ja.com

TypeScript(Angular2)でJSONオブジェクトをループする方法

私はAngular2を初めて使用し、GETリクエストから返されたJSONオブジェクトをループしようとしていますが、うまくいきません。

私の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')
    );
}

私はデータを取り戻します-これは素晴らしいことです。ただし、IDを配列にプッシュします。 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で同じ結果を達成する方法を見つけるのに苦労しています。どんな助けも大歓迎です!

10
AlexisP

GETリクエストからのjsonオブジェクトは、上で投稿したもののように見えると仮定します:

let list: string[] = [];

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

それとも、この方法でそれを行うことを妨げる何かが欠けていますか?

16
csim

ECMAScript 6は let ステートメントを導入しました。 forステートメントで使用できます。

var ids:string = [];

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