2010-11-25 8 views
0

データ列ラベルを持つデータセット(応答)を返すajax関数を呼び出しています。列ラベルの1つは、コールの開始元に応じて変わります。事前に命名規則を知らないでJavaScript配列を呼び出す

列ラベルがハードコーディングされている場合、通常、次のコードは、応答変数にアクセスします。

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

しかし、私は以来で渡された別の文字列変数を使用して応答変数にアクセスできるようにする必要がありますラベルが変更されます。以下は私の弱い試みですが、うまくいきません。それを行うための正しい構文は何ですか?

data.setValue(i, 1, response.d[i][columnLabel]); 

obj.propertyobj['property']と同等です:

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

FYI、あなたが変数に名前を使用してアプローチしたい事はありません、配列、オブジェクトと呼ばれます。 'response.d'は配列であり、番号(> = 0)を使ってアクセスされますが、その配列の各要素(' response.d [i] ')はオブジェクトです。 –

答えて

8

あなたは[]演算子はを使用する必要があります。

+1

+1正解です。 – aefxx

0

これを試してみてください:

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