将点表示法转换为方括号表示法

时间:2019-11-14 11:15:29

标签: json angular typescript

我正在尝试在primeng表中使用动态列。但是,为此,括号表示法中必须有列字段。我有一列具有嵌套的JSON结构。我不知道该怎么用括号表示。请帮忙。预先感谢:

我的JSON:

[
    {
        "studentName": "test",
        "email": null,
        "phnNumber": 1,
        "subjects": [
            {
                "subjectName": "Maths",
                "subjectTeacher": "Elon"
            },
            {
                "subjectName": "English",
                "subjectTeacher": "Shakespeare"
            }
        ]
    },
    {
        "studentName": "test2",
        "email": null,
        "phnNumber": 1,
        "subjects": [
            {
                "subjectName": "CS",
                "subjectTeacher": "Elon"
            },
            {
                "subjectName": "English",
                "subjectTeacher": "Shakespeare"
            }
        ]
    }
]

我的类型密码:

this.cols = [
      { field: 'studentName', header: 'Student Name' },
      { field: 'email', header: 'Email' },
      { field: 'phnNumber', header: 'Contact No' },
      { field: '["subjects"][0]["subjectName"]', header: 'Subject Name' }

    ];

我的模板:

     <ng-template pTemplate="body" let-student let-columns="columns">

                <td *ngFor="let col of columns">
                    {{student[col.field]}}
                </td>
</ng-template>

以点表示法,如果我必须访问学生1的第一个主题,我会做students[0].subjects[0].subjectname,其中学生是学生的数组。如何在方括号表示法中复制它?

1 个答案:

答案 0 :(得分:0)

尝试这样

students[i]['subjects'][j]['subjectName']

对于第一个学生的第一门学科,

students[0]['subjects'][0]['subjectName']

演示:https://stackblitz.com/edit/angular-nt1yt5