2016-10-07 3 views
-2

Als Teil meines D3.js-Projekts verwende ich einen Wert, der von einem HTML-Auswahlfeld ausgewählt wurde, um ein Balkendiagramm zu erstellen, um ein bestimmtes Datenfeld anzuzeigen, das einem Objekt zugeordnet ist. Mein Datenobjekt hat die Felder this und that.Ist es möglich, ein Objekt mit einem String zu referenzieren?

Wenn mein Auswahlbox geändert wird, ruft es eine Funktion selector

function selector() { 

//check what box is selected then call render with either this or that 

var selected = "this"; 

render(selected); 

} 

Dann in meiner Funktion machen, ich ein paar Sachen zu den Bars zu tun, je nachdem, ob „die“ oder „die“ ausgewählt .

Meine Renderfunktion ist viel komplizierter und ich habe mehrere Zweige der bedingten Anweisung, die alle im Wesentlichen sich wiederholen. Gibt es irgendeine Möglichkeit für mich, auf eine Methode meiner Daten zuzugreifen (d. H. Data.this), wenn man die Zeichenfolge "this" erhält, so dass ich keine solche monströse if-Anweisung habe?

Antwort

2

Sie können Daten verwenden [ "this"] oder eine Variable übergeben:

var b = "this"; 
return data[b]; 

Ihr Code würde wie folgt aussehen:

function render(selectedValue) { 
    return data[selectedValue]; 
} 
Verwandte Themen