2010-11-25 3 views
0

Ich rufe eine AJAX-Funktion auf, die ein Dataset (Antwort) mit Datenspaltetiketten zurückgibt. Eine der Spaltenbeschriftungen ändert sich je nachdem, von wo aus der Anruf initiiert wurde.Aufruf eines Javascript-Arrays ohne vorherige Kenntnis der Namenskonventionen

Normalerweise wird der folgende Code greift auf die Antwortvariable, wenn die Spaltenbeschriftung hart codiert:

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

Ich brauche aber die Antwortvariable der Lage sein, Zugriff auf ein separates String-Variable verwenden, da die übergeben wird in Label-Änderungen. Unten ist mein schwacher Versuch, es zu tun, aber es funktioniert nicht. Was ist die korrekte Syntax dafür?

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

FYI, das, was Sie mit einem Namen in einer Variablen nähern wollen ein Objekt genannt wird, kein Array; 'response.d' ist ein Array, auf das mit einer Zahl (> = 0) zugegriffen wird, aber jedes Element dieses Arrays (' response.d [i] ') ist ein Objekt. –

Antwort

8

Sie müssen die [] -Operator verwenden:

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

obj.property entspricht obj['property'].

+1

+1 Richtige Antwort. – aefxx

0

Versuchen Sie folgendes:

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