/ / Je možné odkazovať na objekt pomocou reťazca? - javascript

Je možné odkazovať na objekt pomocou reťazca? - javascript

V rámci môjho projektu D3.js som pomocou hodnoty vybranej pomocou poľa pre výber HTML vytvoril stĺpcový graf na zobrazenie určitého poľa údajov priradených k objektu. Môj dátový objekt má polia this a that.

Keď sa moje výberové pole zmení, volá funkciu selector

function selector() {

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

var selected = "this";

render(selected);

}

Potom, v mojej funkcii render, urobím veľa vecí do barov v závislosti od toho, či je vybraté „toto“ alebo „že“.

function render(selectedValue) {

if(selectedValue == "this") {

return data.this;

} else {

return data.that;

}

}

Moja funkcia renderovania je oveľa komplikovanejšia a jamajú viac vetov podmienečného vyhlásenia, ktoré sa všetky v podstate opakujú. Existuje nejaký spôsob, ako získať prístup k metóde svojich údajov (t. J. Data.this), keď dostanem reťazec „this“, aby som nemal také monštruózne vyhlásenie if?

odpovede:

2 pre odpoveď č. 1

Môžete použiť údaje [„this“] alebo ich odovzdať premennú:

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

Váš kód bude vyzerať asi takto:

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