web-dev-qa-db-fra.com

Comment boucler un objet JSON avec TypeScript (Angular2)

Angular2 est nouveau pour moi et j'essaie de parcourir en boucle un objet JSON que je reviens d'une requête GET mais que je ne peux pas résoudre.

Mon objet 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"
    }]
}

partie de mon Angular script:

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

Je récupère les données - ce qui est génial. Cependant, je veux pousser les identifiants dans un tableau. En Javascript je ferais ceci:

var ids = [];

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

Le tableau après le push:

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

J'ai du mal à trouver le moyen d'obtenir les mêmes résultats avec Angular2. Toute aide serait grandement appréciée!

10
AlexisP

En supposant que votre objet json de votre demande GET ressemble à celui que vous avez posté ci-dessus, il suffit de:

let list: string[] = [];

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

Ou est-ce que je manque quelque chose qui vous empêche de le faire de cette façon?

16
csim

ECMAScript 6 a introduit l’instruction let . Vous pouvez l'utiliser dans une instruction for.

var ids:string = [];

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