在不事先知道命名约定的情况下调用javascript数组

use*_*413 0 javascript

我正在调用ajax函数,该函数返回带有数据列标签的数据集(响应).其中一个列标签会根据发起呼叫的位置而更改.

通常,如果列标签是硬编码的,则以下代码访问响应变量:

for (var i = 0; i < response.d.length; i++) {
  data.setValue(i, 1, response.d[i].Emissions);
}
Run Code Online (Sandbox Code Playgroud)

但是,我需要能够使用自标签更改后传入的单独字符串变量来访问响应变量.以下是我做这件事的微弱尝试,但它没有用.这样做的正确语法是什么?

var columnLabel = 'Emissions';
for (var i = 0; i < response.d.length; i++) {
  data.setValue(i, 1, response.d[i].columnLabel);
}
Run Code Online (Sandbox Code Playgroud)

jwu*_*ler 8

你需要使用[]-operator:

data.setValue(i, 1, response.d[i][columnLabel]);
Run Code Online (Sandbox Code Playgroud)

obj.property相当于obj['property'].