Friday, 29 April 2016

angular - How to loop through a JSON object with typescript (Angular2)




I am new to Angular2 and I am trying to loop through a JSON object that I am getting back from a GET request but can't work it out.



My JSON object:



{
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"
}]

}


Part of my 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')
);

}


I do get the data back - which is great. However, I want to push the Ids into an array. In Javascript I would do this:



var ids = [];

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



The array after the push:



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


I am struggling to find a way to achieve the same results with Angular2. Any help would be greatly appreciated!


Answer



Assuming your json object from your GET request looks like the one you posted above simply do:




let list: string[] = [];

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


Or am I missing something that prevents you from doing it this way?


No comments:

Post a Comment

c++ - Does curly brackets matter for empty constructor?

Those brackets declare an empty, inline constructor. In that case, with them, the constructor does exist, it merely does nothing more than t...