(JS) Variablenname aus Zeichenketten generieren

Hallo zusammen,

ich bin gerade dabei, eine proxy.pac zu überarbeiten (JS) und bin auf folgendes Problem gestoßen (wobei ich glaube, dass es eher ein Denkfehler ist…):

Es gibt verschiedene Variablen, die folgendermaßen lauten:

nnn_aaa
nnn_bbb
nnn_ccc

In einer Abfrage wird eine weitere Variable (standort) auf aaa, bbb oder ccc gesetzt.

Nun möchte ich, dass das komplette Programm (oder eher die Funktion) den Wert der Variablen:

„nnn_“+standort zurückgibt.

aber durch
return „nnn_“+standort
oder auch
temp = „nnn_“+standort
return temp;
bekomme ich (was auch irgendwie logisch ist) nur den jeweiligen String, also zum Beispiel „nnn_aaa“ zurück. Wie kann ich JS mitteilen, dass er den String als Variable behandeln soll?

danke und Gruß
Steffen

Hallo Steffen,

das ist einfach:
Also deine Methode liefert den Namen der Variable als String zurück:

return „nnn_“+standort

Und so benutzt den String für den Variablennamen:

vName = deineMethode();
eval(vName + "=27;");

Der übergebenen Variable wird der Wert 27 zugewiesen.

Hilft das weiter?

Gruß

Christian

Hallo Christian,

wenn ihr ehrlich bin hilft mir das nicht wirklich weiter.

das ist einfach:
Also deine Methode liefert den Namen der Variable als String
zurück:

return „nnn_“+standort

Genau…

Und so benutzt den String für den Variablennamen:

> vName = deineMethode();  
> eval(vName + "=27;");

Der übergebenen Variable wird der Wert 27 zugewiesen.
Hilft das weiter?

Leider nein. Ich habe ja keine Rechenoperationen, die ausgeführt werden sollen. Es soll lediglich ein zusammegesetzter String als Variable erkannt und deren Inhalt zurückgegeben werden.

Habe mich wohl falsch ausgedrückt.

Dennoch danke :smile:
Steffen

Hallo Steffen!

Leider nein. Ich habe ja keine Rechenoperationen, die
ausgeführt werden sollen. Es soll lediglich ein
zusammegesetzter String als Variable erkannt und deren Inhalt
zurückgegeben werden.

Habe mich wohl falsch ausgedrückt.

Ein neuer Versuch:

vName = deineMethode(); // also der Variablenname als String (return-wert)
eval("erg = " + vName); // Variable auslesen uns zuweisen

und z.B. mit
alert(erg);
ausgeben.

Gruß Christian

jetzt sollte der

Hallo Steffen!

Leider nein. Ich habe ja keine Rechenoperationen, die
ausgeführt werden sollen. Es soll lediglich ein
zusammegesetzter String als Variable erkannt und deren Inhalt
zurückgegeben werden.

Habe mich wohl falsch ausgedrückt.

Ein neuer Versuch:

vName = deineMethode(); // also der Variablenname als String
(return-wert)
eval("erg = " + vName); // Variable auslesen uns zuweisen

und z.B. mit
alert(erg);
ausgeben.

Gruß Christian

absolut richtig. Noch ein Beispiel:

aaa=„berlin“;
nn_berlin=„hi!“
eval(„nevvar=nn_“+aaa)
alert(nevvar)