【问题标题】:How to loop through a JSON object with typescript (Angular2) [duplicate]如何使用打字稿(Angular2)循环遍历JSON对象[重复]
【发布时间】:2017-09-29 06:55:20
【问题描述】:

我是 Angular2 的新手,我正在尝试遍历一个 JSON 对象,我从 GET 请求返回但无法解决。

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

我确实找回了数据 - 这很棒。但是,我想将 Ids 推送到一个数组中。在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 实现相同结果的方法。任何帮助将不胜感激!

【问题讨论】:

标签: json angular typescript


【解决方案1】:

假设您的 GET 请求中的 json 对象看起来像您在上面发布的那样:

let list: string[] = [];

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

还是我错过了阻止你这样做的东西?

【讨论】:

  • 哦,太好了,这对我有用。非常感谢
【解决方案2】:

ECMAScript 6 引入了let 语句。您可以在for 语句中使用它。

var ids:string = [];

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-08
    • 2015-03-18
    • 2015-05-16
    • 2021-10-07
    • 2015-09-16
    • 1970-01-01
    相关资源
    最近更新 更多