Saya baru mengenal Angular2 dan saya mencoba untuk mengulang melalui objek JSON yang saya dapatkan kembali dari permintaan GET tetapi tidak bisa'tidak bisa menyelesaikannya.
Objek JSON saya:
{
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"
}]
}
Bagian dari skrip Angular saya:
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')
);
}
Saya mendapatkan data kembali - yang mana itu bagus. Namun, saya ingin mendorong Id ke dalam array. Dalam Javascript saya akan melakukan ini:
var ids = [];
for (i = 0; i < data.Results.length; i++) {
ids.push(data.Results[i].Id)
}
Larik setelah dorongan:
ids = ['data-mopdsjkajskda', 'data-2371212hjb1', 'data-kjskdha22112'];
Saya berjuang untuk menemukan cara untuk mencapai hasil yang sama dengan Angular2. Bantuan apa pun akan sangat dihargai!
Dengan asumsi objek json Anda dari permintaan GET Anda terlihat seperti yang Anda posting di atas cukup lakukan:
let list: string[] = [];
json.Results.forEach(element => {
list.push(element.Id);
});
Atau apakah saya melewatkan sesuatu yang mencegah Anda melakukannya dengan cara ini?
ECMAScript 6 memperkenalkan pernyataan let
. Anda dapat menggunakannya dalam pernyataan for
.
var ids:string = [];
for(let result of this.results){
ids.push(result.Id);
}