如何动态创建属性并为其添加值?

时间:2018-08-27 12:32:47

标签: javascript typescript ag-grid

从我的API中,我得到2个数组,一个数组具有列名,另一个数组具有与这些列匹配的数据。
要使用ag-grid,我需要将列与类的属性进行匹配。

例如:一列名为foo的类和一个具有名为foo的属性的类:

  public columnDefs: Column[] =
    [{ field: 'foo', headerName: 'Foo') }];

然后我需要一个类来匹配它:

export class Bar { public foo: string; }

现在,问题出在,我用一个列名称返回一个数组,用匹配数据返回另一个数组,所以我需要创建这样的东西:

x [0]是需要作为属性的列,x [1]是该属性的值

    for (let index = 0; index < x[1].length; index++) {
              this.rowData.push({ x[0][index]: x[1][index] });
            }

这怎么办?

1 个答案:

答案 0 :(得分:2)

您实际上需要获取x[0][index]的值作为键名,以便可以使用ES6方法将其括在[]中,例如

this.rowData.push({ [x[0][index]]: x[1][index] });

var x = [['someKey'],['someValue']];
var rowData = [], index = 0;
rowData.push({ [x[0][index]]: x[1][index] });
console.log(rowData);