如何使用打字稿(Angular2)循环遍历JSON对象[重复]

Posted

技术标签:

【中文标题】如何使用打字稿(Angular2)循环遍历JSON对象[重复]【英文标题】:How to loop through a JSON object with typescript (Angular2) [duplicate] 【发布时间】: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 实现相同结果的方法。任何帮助将不胜感激!

【问题讨论】:

这应该是 Javasript 问题。 Angular 与 for 循环无关。无论如何,您可以改用它。 developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… this 回答对我很有帮助。 【参考方案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);

【讨论】:

以上是关于如何使用打字稿(Angular2)循环遍历JSON对象[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何通过两个对象打字稿角度6进行比较

如何使用打字稿在angular2中获取设备显示的高度和宽度?

如何将 Angular 2 表单输入传递给打字稿组件?

打字稿循环遍历具有索引和值的字符串

如何从 JSON API 循环数组

Visual Studio 打字稿与 Angular 2 冲突