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

在不事先知道命名约定的情况下调用javascript数组,javascript,Javascript,我调用了一个ajax函数,该函数返回带有数据列标签的数据集(响应)。其中一个列标签根据调用的起始位置而变化 如果列标签是硬编码的,通常以下代码访问响应变量: for (var i = 0; i < response.d.length; i++) { data.setValue(i, 1, response.d[i].Emissions); } for(变量i=0;i

我调用了一个ajax函数,该函数返回带有数据列标签的数据集(响应)。其中一个列标签根据调用的起始位置而变化

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

for (var i = 0; i < response.d.length; i++) {
  data.setValue(i, 1, response.d[i].Emissions);
}
for(变量i=0;i
但是,我需要能够使用一个单独的字符串变量访问响应变量,该变量是在标签更改后传入的。下面是我做这件事的微弱尝试,但它不起作用。这样做的正确语法是什么

var columnLabel = 'Emissions';
for (var i = 0; i < response.d.length; i++) {
  data.setValue(i, 1, response.d[i].columnLabel);
}
var columnLabel='Emissions';
对于(变量i=0;i
您需要使用
[]
-运算符:

data.setValue(i, 1, response.d[i][columnLabel]);
obj.property
相当于
obj['property']

尝试以下方法:

for (var i = 0; i < response.d.length; i++) {
  data.setValue(i, 1, response.d[i]['Emissions']);
}
for(变量i=0;i
FYI,您希望在变量中使用名称的方法称为对象,而不是数组
response.d
是一个数组,因为它是使用数字(>=0)访问的,但该数组(
response.d[i]
)的每个元素都是一个对象。