2017-05-01 9 views
4

私はAngular2が新しく、私はGETリクエストから戻ってきているのに戻ってこないJSONオブジェクトをループしようとしています。JSONオブジェクトをtypescript(Angular2)でループする方法

私の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" 
    }] 
} 

パート:私は戻ってデータを取得行う

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) 
} 

配列をプッシュした後:私はAngular2と同じ結果を達成するための方法を見つけるのに苦労しています

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

。どんな助けでも大歓迎です!

+0

これはJavasriptに関する質問です。 Angularはforループとは関係ありません。とにかく、代わりにこれを使うことができます。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach?v=example – wannadream

答えて

11

あなたのGET要求からあなたのJSONオブジェクトを仮定すると、あなたは、単に行う上で掲載1のようになります。

let list: string[] = []; 

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

または私はそれをこのようにやってからあなたを防ぐ何かが足りないのですか?

+1

ああ完璧な、私のために働いた。どうもありがとう – AlexisP

9

ECMAScript 6ではlet文が導入されました。let for for文を使用できます。以下のように

var ids:string = []; 

for(let result of this.results){ 
    ids.push(result.Id); 
} 
関連する問題