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

How can I create a property dynamically and add a value to it?

从我的 API 我得到 2 个数组,一个包含列名,另一个包含与这些列匹配的数据。
要使用 ag-grid,我需要将列与 class.

的属性相匹配

例如:一个名为 foo 的列和一个 class 以及一个名为 foo 的 属性:

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

那么我需要一个 class 来匹配:

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] });
            }

如何做到这一点?

您需要实际获取 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);