如何动态创建 属性 并为其添加值?
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);
从我的 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);